## Random number generators

But what exactly is a **random number generator**?

A random number generator is a computational or physical device that is able to generate numbers that lack pattern; that is, these numbers generated appear to be random. While computers are generally used to generate random numbers, these numbers usually does not meet the criteria for true random numbers, but for the purpose where they are used, they are “random” enough.

Computers are able to generate pseudo-random numbers, and not real random numbers. Computers generate these numbers using a Pseudo-random Number Generators (PRNG) algorithms which are mathematical equations that automatically create long runs (millions of numbers long) with acceptable random properties. These numbers are however not “true random numbers” because at some point during the execution of these mathematical formulas, numbers will repeat. But for applications needing random numbers within the range of these pseudo-random numbers generated by the computer, it will suffice. Computer programming languages often provide functions or libraries that provide programmers with random bytes, words or floats evenly distributed between 0 and 1.

There are, however, some specialized computers that rely on physical phenomena to generate true random numbers. One example is the Atari 8-bit computer which uses the noise from it its analog circuitry to generate random numbers. Other sources of random numbers from the physical world included thermal noise, radioactive decay, shot noise and clock drift.