Random Number Generator
Generate random integers or decimals in any range you choose — a single value or up to 10,000 at once, with an optional no-repeats mode for draws. Numbers come from your browser's cryptographically strong random source and never leave your device.
Generate random numbers
Example: 5 unique integers between 1 and 90 for a draw.
Where the randomness comes from
This generator draws from crypto.getRandomValues, the browser's cryptographically
strong random source, which is seeded with entropy collected by your operating system. Each
32-bit draw is scaled onto your range; integer mode rejects and redraws any value that would
fall outside it, which is what guarantees every value in the range an equal chance (no modulo
bias). Generation happens on your device — the numbers are never transmitted, logged, or
reproducible by us.
Common uses
Picking giveaway winners, shuffling assignment orders, sampling rows for a spot check, generating test data, rolling initiative, choosing lottery-style numbers for fun, or seeding a game board. For statistical work, note that batches are independent uniform draws — if you need reproducibility across runs, you need a seeded pseudorandom generator instead, which is a deliberate non-goal of this tool.
Fairness in practice
Two properties matter for a fair draw: an unbiased source and an unbiased mapping. Weak
generators usually fail the second — taking random() % range makes low values slightly
more likely whenever the range does not divide the generator's span evenly. The engine here is tested
for exact inclusive bounds and rejection-based uniformity, and unique mode uses draw-without-replacement
so no entrant can appear twice.
Frequently asked questions
How random are these numbers?
Values come from your browser’s crypto.getRandomValues — a cryptographically strong source seeded by the operating system — and are mapped to your range without modulo bias. That is substantially stronger than Math.random, which is predictable and unsuitable for anything security-adjacent.
Is every number in the range equally likely?
Yes. Integer generation uses uniform scaling with rejection of out-of-range draws, so the first and last values of the range have exactly the same probability as any other — a common defect of naive modulo-based generators.
What does the unique option do?
Unique mode never repeats a value within one batch — like drawing numbered balls from a bag without putting them back. It requires the range to contain at least as many values as you ask for; the calculator explains when it cannot.
Can I use this for a raffle or giveaway?
For informal draws, yes — generate one integer across your entry count, or a unique batch for multiple winners. For regulated lotteries or auditable draws you need a documented, certified procedure; a browser tool cannot provide that audit trail.
Generation is implemented as tested, typed functions with an injectable random source — see the methodology page.