A random number generator
creates a sequence of randomly distributed numbers. A Pseudo-Random Number
Generator creates random numbers as well, but it will create the same sequence
of numbers repeatedly. Many algorithms have been developed in an attempt to
produce truly random sequences of numbers, with the goal of making it
theoretically impossible to predict the next number in the sequence, based on
the numbers up to a given point. Unfortunately, the very existence of an
algorithm that calculates this number means that the next digit can be
predicted.
For all real applications, PRNGs are considered to be
sufficient. PRNGs play a role in encryption schemes that use random numbers as
part of the encryption process. It has been shown that weak, predictable PRNGs
make the encryption less secure and therefore crackable.