Random numbers are very difficult to generate reliably. In particular, for cryptographic applications we need a stream of numbers with no biases and no correlations.

There are a number of systems used to generate numbers that appear to be random, and without extra information are almost indistinguishable from random, but knowing for certain that they are unbiased and uncorrelated is quite tricky.

At some point we can write about the Mersenne Twister, or other pseudo-random number generators specifically and in detail.

For now, suppose you have a number from 0 to 1,000,000. Print the last digit, then multiply your number by 32063 and keep only the last 6 digits. Then again print the last digit. That will vaguely look random, but not really. With more work we can create things that look more random, and that is then a pseudo-random number.

For more details, wikipedia is a reasonable start:

Last change to this page
Full Page history
Links to this page
Edit this page
  (with sufficient authority)
Change password
Recent changes
All pages