Random Number Generation (RNG) generates cryptographically strong random numbers for use by cryptographic applications such as one-time pads and Initialization Vectors. The applications rely on RNG for its randomness, unpredictability and irreproducibility.