From Veritas

A **random number generator** (**RNG**) is any device which produces well-distributed numbers which can't be predicted by knowing the previous numbers generated.

A **pseudo-random number generator** (**PRNG**) uses a mathematical algorithm to emulate randomness, but is really just a repeating function with an extremely long period before repeating.

A **true** RNG can be made in a variety of ways, such as by observing true-random processes in quantum mechanical systems, using microthermal fluctuations inside of a chip, or using hashes of microsecond timing of environmentally influenced events such as keystroke or device interrupts.