PICK · SAMPLE · SHUFFLE

Random Number Generator

Generate one number instantly or build an exact-uniform sample with custom range, exclusions, steps, decimals, and no-repeat draws.

Web Cryptobrowser source
unbiasedrejection sampling
localno account
GENERATE NOW

Your range, your rules.

RANDOM RESULT—

1 possible draw from 100 values.

RESULTSNo sample yet
Generate to see results.
Advanced controls uniqueness · decimals · step · exclusions · base · sort
AVAILABLE VALUES100
EXPECTED MEAN50.5
METHODuniform lattice
MULTI-SET SAMPLER

Build several random sets at once

Uses the current range, precision, step, and exclusions. Choose whether values may reappear in another set.

5 sets · 6 numbers each
Generate to build sets.
ELIMINATION DRAW

Draw one at a time without repeats

Useful for classroom turns, raffle numbers, question order, or any finite pool.

LAST DRAW—
REMAINING—Start a pool of up to 10,000 values.
No draws yet.
DISTRIBUTION LAB

Watch uniform randomness spread out

For a small whole-number range, generate repeated samples and compare bucket counts. Short runs can look uneven even when every value has the same chance.

SAMPLE SIZE—
EXPECTED / BUCKET—
χ² SNAPSHOT—

Use a whole-number range with 2–20 available values.

RECENT GENERATIONS

Keep the last 10 local runs

No generations yet.

WHY THIS FEELS FAIR

Three details that matter more than animation

01

No modulo shortcut

Raw random bits are rejected when they would create an uneven remainder. Every allowed index then has the same mapping probability.

02

No-repeat really means sampling

Unique mode keeps drawing from the exact allowed domain until it has distinct values. Elimination mode makes the shrinking pool visible.

03

Decimals live on an exact grid

With two decimal places, 1.00–2.00 means 101 equally spaced values, not floating-point guesses between endpoints.

Randomness method, scope & limitations

Random source

This page uses crypto.getRandomValues() from your browser. It does not silently fall back to Math.random().

Uniform mapping

The generator reads enough random bits for the current domain and uses rejection sampling whenever the bit range is not an exact multiple of the number of available values. This avoids the small modulo bias created by a plain remainder operation.

What this is not

This is browser cryptographic pseudo-randomness for everyday choices, learning, sampling, games, and test data. It is not RANDOM.ORG atmospheric physical randomness, a public audit trail, or evidence for regulated, legal, gambling, prize, security-key, or other high-stakes use.

Privacy

Generation happens locally. Only the last 10 run summaries and your current session history are stored in this browser.