In this article, we propose a new counter-based implementation of John von Neumann's middle-square random number generator (RNG). Several rounds of squaring are applied to a counter to produce a random output. We discovered that four rounds are sufficient to provide satisfactory data. Two versions of the RNG are presented, a 4-round version with 32-bit output and a 5-round version with 64-bit output. Both pass stringent tests of randomness and may be the fastest counter-based generators.
@article{arxiv.2004.06278,
title = {Squares: A Fast Counter-Based RNG},
author = {Bernard Widynski},
journal= {arXiv preprint arXiv:2004.06278},
year = {2022}
}
Comments
A software package with example programs is available at http://squaresrng.wixsite.com/rand