Simple TL;DR is that it generates addresses knowing that if all the possible address prefixes that are M characters long M-character long prefix amount to N prefixes in total, it's going to take advantage of the
birthday paradox phenomenon to keep generating addresses and it's going to eventually find two addresses that both have the same M-character prefix (one of those N prefixes). The more addresses generated the higher the probability of two having the same prefix becomes.
BTCcollider like most of Jean_Lucs programs have an optimization to reduce the number of addresses searched using something called Distinguished Points.
If you're familiar with Kangaroo it's using the same Distinguished Point method as it to ignore leading bits of two numbers so that they are otherwise identical.
This is Kangaroo's Github page. Replace Kangaroo with BTCcollider because both the "birthday problem" BTCcollider says it solves and Kangaroo's hops are kinds of random walks:
The distinguished point (DP) method is an efficient method for storing random walks and detect collision between them. Instead of storing all points of all kangagroo's btccollider's random walks, we store only points that have an x value starting with dpBit zero bits.
In other words when using DPs you ignore the prefix of two numbers and compare the rest of their parts. A distinguished point = a collision = a solution. This is why discussion about the number of DPs is frequent here because the number of DPs tells how many collisions/solutions there are.
Don't worry about dpBit in the quote above, it's not the number of DPs but it's the number of bits to permanently set to 1 (or 0) in a mask that can then be used to calculate the number of distinguished points there are (in the quote below the DP size causes some bits at the beginning to be permanently set to 1 and not compared):
DP size: 10 [0xFFC0000000000000]
DP size: 5 [0xF800000000000000]
DP size: 2 [0xC000000000000000]
DP size: 1 [0x8000000000000000]
DP size: 0 [0x0000000000000000]
All those zeros represent groups of 4 bits (because these are hex numbers and each one encodes 4 bits) that will be used to search for the rest of the address.