mtwist

This is a concise implementation of the Mersenne Twister Pseudo-Random Number Generator (PRNG) for JavaScript.

The library:

Includes initialization improvements to the algorithm that were made in 2022

Is tested against the original C implementation

Includes TypeScript types

The Mersenne Twister is not a cutting-edge PRNG. It is not cryptographically secure. But it is very widely used, being the default PRNG for Excel, R, Python, Ruby and others.

Why would I use this?

The key use case is for reproducible pseudo-random sequences, which you get by manually seeding your PRNG

You could also use this because you want your random numbers generated the same way across all browsers and JavaScript engines

How do I use this?

x = Math.random();

becomes

import MersenneTwister from 'mtwist'; seed = 1234567890; // an integer between 0 and 4294967295 m = new MersenneTwister(seed); x = m.random();

Methods to produce evenly distributed integers in the ranges [0,n) and [m,n] are also provided.

For details, see index.ts.

Licence

© Copyright 2014 – 2021 George MacKerron and released under the MIT Licence.