May 26, 2018
C implementation of the ISAAC PRNG Algorithm
As with other Pseudo-Random Number Generator PRNG algorithms like the Mersenne Twister see MathRandomMT, this algorithm is designed to take some seed information and produce seemingly random results as output.
However, ISAAC Indirection, Shift, Accumulate, Add, and Count has different goals than these commonly used algorithms. In particular, it’s really fast - on average, it requires only 18.75 machine cycles to generate a 32-bit value. This makes it suitable for applications where a significant amount of random data needs to be produced quickly, such solving using the Monte Carlo method or for games.