For people concerned with cross-browser reproducibility as well as resuming a PRNG between sessions (e.g., to reproduce random sequences in replays or multiplayer), check out arbit, an NPM package I made. It performs close to Math.random and uses floats for state internally for max resolution (i.e., length and number of unique sequences):<p><a href="https:&#x2F;&#x2F;github.com&#x2F;blixt&#x2F;js-arbit" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;blixt&#x2F;js-arbit</a><p>I would also recommend running the provided DieHarder test, which is crafted to measure the quality of PRNGs.