interface-forge - v2.5.0
    Preparing search index...

    Interface Randomizer

    Interface for a random number generator.

    Note: Normally there is no need to implement this interface directly, unless you want to achieve a specific goal with it.

    This interface enables you to use random generators from third party libraries such as pure-rand.

    Instances are expected to be ready for use before being passed to any Faker constructor, this includes being seed()ed with either a random or fixed value.

    For more information please refer to the documentation.

    import { Faker, Randomizer, SimpleFaker } from '@faker-js/faker';
    import { RandomGenerator, xoroshiro128plus } from 'pure-rand';

    function generatePureRandRandomizer(
    seed: number | number[] = Date.now() ^ (Math.random() * 0x100000000),
    factory: (seed: number) => RandomGenerator = xoroshiro128plus
    ): Randomizer {
    const self = {
    next: () => (self.generator.unsafeNext() >>> 0) / 0x100000000,
    seed: (seed: number | number[]) => {
    self.generator = factory(typeof seed === 'number' ? seed : seed[0]);
    },
    } as Randomizer & { generator: RandomGenerator };
    self.seed(seed);
    return self;
    }

    const randomizer = generatePureRandRandomizer();

    const simpleFaker = new SimpleFaker({ randomizer });

    const faker = new Faker({
    locale: ...,
    randomizer,
    });

    8.2.0

    interface Randomizer {
        next(): number;
        seed(seed: number | number[]): void;
    }
    Index

    Methods

    Methods

    • Generates a random float between 0 (inclusive) and 1 (exclusive).

      Returns number

      randomizer.next() // 0.3404027920160495
      randomizer.next() // 0.929890375900335
      randomizer.next() // 0.5866362918861691

      8.2.0

    • Sets the seed to use.

      Parameters

      • seed: number | number[]

        The seed to use.

      Returns void

      // Random seeds
      randomizer.seed(Date.now() ^ (Math.random() * 0x100000000));
      // Fixed seeds (for reproducibility)
      randomizer.seed(42);
      randomizer.seed([42, 13.37]);

      8.2.0