Many of these wallets, and other tools, generate random bitcoin addresses. From someone who started programming in the 1970s, we learned quickly then that computers are deterministic machines. There is no such thing as a random number. So, people started seeding their random number generators with certain random things, like the number of milliseconds at which time the program ran. This generally solved the random number problem.
However! The degree of precision at which random number generators, are seeded, could be extremely important for bitcoin. If the degree of precision of the seeds that these random number generators use in bitcoin wallets, is not large enough, (or random enough), then bitcoin addresses could be expected to be repeated much more often than we might expect when we calculate a very large degree of entropy in the final bitcoin address.
So, in each wallet, it is crucial to find out how, and to what degree of precision, the random number generators are being seeded, that are used to create the bitcoin addresses that we use.
Does anyone have any idea as to how these number generators work in some of the common wallets like Satoshi, or Electrum? If not, then I think it's crucial that we find out.
I asked this question a while back. I think there were 6 different factors that were used in generation of random addresses to ensure sufficient entropy. Hopefully someone will chime in with exactly what those were, but it definitely satisfied me that the addresses are extremely random.