Pick the output type (integer or decimal), the range, the count, and whether duplicates are allowed. Integers are sampled inclusively on both endpoints; decimals are sampled half-open on the upper bound (min ≤ x < max), matching the underlying Math.random() convention and keeping the distribution clean at the boundary.
Unique-output mode samples without replacement and is most useful for integer draws — for example, picking 6 distinct lottery numbers from 1–49. For continuous decimals, duplicates are already vanishingly improbable, so the unique flag rarely matters there. The underlying RNG is the browser's Math.random(): well-distributed and fast, but never use it for cryptographic purposes.
Decimals are sampled half-open on the upper bound: min ≤ x < max. That matches standard library behaviour (Math.random() returns [0, 1)) and avoids floating-point edge cases at the maximum.
Up to 15 — the practical limit of IEEE-754 double precision. Beyond that the output starts running into rounding artefacts inherent to binary floating point.
It removes the chance of a literal duplicate but is rarely useful: with continuous values, repeated draws are mathematically near-impossible anyway. Unique mode is mainly intended for the integer case (drawing N distinct integers from a smaller-than-comfortable range).
Up to Number.MAX_SAFE_INTEGER (2^53 − 1) for integers. Above that the result is mathematically random but loses one-to-one mapping to integers because of float precision.
Explore the full suite of Generator tools and 290+ other free utilities at Chunky Munster.