An RNG, or a Random Number Generator, refers to a program that generates a set of random numbers and or symbols that cannot be predicted beforehand. The numbers or symbols that are acquired happen simply by chance.
RNG can also come in hardware (HRNG) and pseudo (PRNG) form. Hardware random number generators generate random numbers that have purely accidental outcomes. A pseudo-random number generator, on the other hand, has number outcomes that look random, but are not.
The use of an RNG can span many spheres. RNGs can be used in casino game development, computer and statistical sampling, cryptography, and completely random designs. The generator is also used in areas where there is a need for unpredictable results. RNGs are also preferred over pseudo-random generators in the areas of security applications, hardware generators, etc.
For cryptographic nonce generation and keys, cryptography depends heavily on a cryptographically secured number generator. These number generators have to be random. The reason for this is, if a number generator can be predictably in any way, then it can be used as a backdoor by hackers to break the encryption.
An RNG system works by distributing random numbers between zero and one. Any random number distribution can be reached by putting them through an inverse CDF, which stands for the cumulative distribution function. This inverse CDF can also be referred to as a quantile function. Firstly the generating of polar coordinates is necessary to make a pair of random numbers x and y, which are statistically independent; through polar coordinates, they also become typically distributed.