xoshiro

A pseudo random number generator

Usage no npm install needed!

<script type="module">
  import xoshiro from 'https://cdn.skypack.dev/xoshiro';
</script>

README

Xoshiro

Node.js CI npm version

What is this?

A pseudo-random-number-generator module implemented in N-API. Here is all about the algorithms.

Requirements

Installation

Just run this command:

npm install --save xoshiro

Usage

const xoshiro = require('xoshiro');
const crypto = require('crypto');

// create a PRNG with an algorithm and a seed
const seed = crypto.randomBytes(32);
const prng = xoshiro.create('256+', seed);

// generate a random unsigned 32-bit integer
console.log(prng.roll());

// store the current state
const s = prng.state
// generate a random number
const x = prng.roll()
// restore the state
prng.state = s
// generate a random number from the previous state
const y = prng.roll()
// and they should be equal
console.log(x === y)  // -> true

Supported algorithms

  • '256+' xoshiro256+, requires the seed to be of at least 32 bytes
  • '256++' xoshiro256++, requires the seed to be of at least 32 bytes
  • '256**' xoshiro256**, requires the seed to be of at least 32 bytes
  • '512+' xoshiro512+, requires the seed to be of at least 64 bytes
  • '512++' xoshiro512++, requires the seed to be of at least 64 bytes
  • '512**' xoshiro512**, requires the seed to be of at least 64 bytes

Note: In order to make it work, the seed used to initialize the PRNG should not be all 0's.