These pages are about random number generation.
On these pages, there is (or soon will be) source code in "C" for several
pseudo-random number generators (PRNG),
circuit diagrams for some hardware Random Number Generators (RNG),
lots of random ramblings, and pointers to other places on the web that have
information about random numbers.
If you know of a good site, and you don't see it listed,
please send me some email about it.
What does random mean: The three Uns.
A true random number generator has three important properties:
- it's Unbiased. All values of whatever sample size is collected are
equiprobable.
- it's Unpredictable. It is impossible to predict what the next output
will be, given all the previous outputs, but not the internal "hidden"
state.
- it's Unreproducible. Two of the same generators, given the same
starting conditions, will produce different outputs.
Usually when a person says they have a "good" random number generator, they
mean it is unbiased. If they say they have a "true" RNG, they usually mean
it's unreproducible. If they say it's "cryptographically strong" they mean
it's unpredictable. Very rarely do they mean it's all three UNs.
This isn't necessarily a bad thing, but it's worth remembering when
evaluating claims that one RNG is "better" than another.