@ende/random

ende add jsr:@ende/random

Version 2026.10.15 on JSR.

Utilities for generating random numbers.

Example of generating a random integer with fixed seed number:

import { randomIntegerBetween } from "@ende/random";
import { randomSeeded } from "@ende/random";
import { assertEquals } from "@ende/assert";

const prng = randomSeeded(1n);

assertEquals(randomIntegerBetween(1, 10, { prng }), 3);

Example of generating a random integer between two values:

import { randomIntegerBetween } from "@ende/random";
import { randomSeeded } from "@ende/random";

const prng = randomSeeded(BigInt(crypto.getRandomValues(new Uint32Array(1))[0]!));

const randomInteger = randomIntegerBetween(1, 10, { prng });

Modules

Exports

  • getRandomValuesSeeded — Creates a pseudo-random value generator that populates typed arrays, based on the given seed. The algorithm used for generation is PCG32.
  • IntegerTypedArray — An integer typed array
  • nextFloat64 — Get a float64 in the range `[0, 1)` from a random value generator.
  • Prng — A pseudo-random number generator implementing the same contract as `Math.random`, i.e. taking zero arguments and returning a random number in the range `[0, 1)`. The behavior of a function that accepts a `Prng` an option may be customized by passing a `Prng` with different behavior from `Math.random`, for example it may be seeded.
  • randomBetween — Generates a random number between the provided minimum and maximum values.
  • randomIntegerBetween — Generates a random integer between the provided minimum and maximum values.
  • RandomOptions — Options for random number generation.
  • randomSeeded — Creates a pseudo-random number generator that generates random numbers in the range `[0, 1)`, based on the given seed, with 32 bits of entropy. The algorithm used for generation is PCG32.
  • RandomValueGenerator — A pseudo-random number generator implementing the same contract as `crypto.getRandomValues`, i.e. taking a typed array and mutating it by filling it with random bytes, returning the mutated typed array instance.
  • sample — Returns a random element from the given array.
  • SampleOptions — Options for sample.
  • shuffle — Shuffles the provided array, returning a copy and without modifying the original array.