node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey ยป


Seedable pseudorandom number generator


var random = require('seedable-random');


As a Math.random replacement

Math.random = require('seedable-random');
  • Works as a drop-in for Math.random

  • Relatively fast (about 2.5 times slower than Math.random on my machine)

  • Seeds itself from the clock by default

  • Tries to be pretty random

  • Well tested (TODO come up with some PRNG torture tests)


Possibility to switch the generator (linear-feedback shift register, Mersenne twister, digits of Math.sin(), etc. based on your needs)

A word of warning

Current implementation just calls Math.sin() with the seed. It's likely that it's not quite that random (for example, the distribution could be biased towards numbers near 1.0). Some more tests are needed.