Math to the rescue..
Whats the probability to pick all different numbers from the numbers 1,...,n if you pick k times ?
Suppose each number is equally probable. Then probability is:
n*(n - 1)* ...*(n - k + 1)/(n*n* ...*n) = 1*(1 - 1/n)* ...*(1 - (k - 1)/n) =
= approximately = E^(-k*(k - 1)/(2*n)) , since 1-x = aproximately = E^(-x)
So the probability of getting 2 same numbers is approximately : P=1 - E^(-k*(k - 1)/(2*n))
Some numbers:case of k = 10 ^80 (we will select one key for every atom in known universe).
If we can select from n=2^512 keys (512 bit keys), probability that 2 will be same will be 1 so thats a fail but..
Take n = 2^600 (600 bit keys) and we get P = 1.204*10^-21, practically non existent
More realistic case, suppose we want to issue one key every second for (overexaggerated) 100 years, thats k = 3600*24*365*100. If we have 128 bit keys probability is 1.4613*10^-20 which is practically nonexistent.
In conclusion: if you have enough keys to choose from you are fine. Btw what that guy is saying, applying hash to key - that will decrease number of available keys since some hashes might be same. So unless you can
prove that it doesnt drastically decrease thats ok, otherwise its equal to decreasing number of bits for keys, for how much? Good thing about it is you get different keys with different id: hash(id .. randomkey).
If you need good random numbers and dont trust generators -
https://www.random.org/cgi-bin/randbyte ... 2&format=b. Then you can skip this hash thing too.