Random numbers

Generate any quantity of numbers in any range.

Random numbers

0
0
0
0
0
0

What you can use this for

Decide who buys the next round of coffee. Pick a winner for a giveaway. Generate a sample for a stats homework. Roll dice in a board game when the cat ate your last d20. Pick numbers for any lottery whose matrix isn't on GoNumy. Anything that needs an unbiased integer in a fixed range — that's what this tool does.

Set "How many" to 1 if you just need a single number; set the range to 6 if you want a virtual die. For a coin flip, use range 2 (we'll give you 1 or 2 — call one of them heads).

How the generator works

Numbers are drawn uniformly without replacement. With "How many = 5" and "Range = 50", you get five distinct integers between 1 and 50, each with the same chance of being picked. No duplicates, no bias.

The underlying source of randomness is the browser's Math.random when JavaScript is available, falling back to the server's V8 randomness when it isn't. Both are non-cryptographic but statistically sound for lottery-style purposes — Math.random is a well-studied, uniformly distributed PRNG that passes standard distribution tests like chi-squared — which is what matters here.

Security note: don't use these picks as passwords, session tokens, or anything where an adversary could observe a few outputs and predict the next. For that, use your operating system's CSPRNG — crypto.getRandomValues in the browser, crypto.randomBytes in Node, /dev/urandom on Unix.

Want lottery-style numbers instead?

If you're playing a real game, use Quick Pick — it knows each lottery's matrix and gives you a valid ticket's worth of numbers. Or for a deterministic "lucky" set based on a meaningful date, try Lucky Numbers. Random Numbers is the most flexible of the three, but the other two save you from having to remember "Powerball is 5-of-69 + 1-of-26" every time you generate.

Frequently asked questions

Why no duplicates?
By default the generator picks without replacement — five distinct numbers, not five numbers that might repeat. That matches how lotteries draw balls (a ball pulled from the drum isn't put back). This generator always draws distinct numbers, so it isn't suited to digit games where repeats are allowed.
What's the maximum 'How many' I can request?
Twenty. The range can go up to 1000. So you could ask for 20 numbers from 1 to 1000, or 5 from 1 to 50, or anything in between as long as the count is no greater than the range.
Is the generator unbiased?
Yes — each integer in the range has the same probability of being picked, and once one is drawn it can't repeat. The underlying RNG is JavaScript's Math.random, which is a non-cryptographic but uniformly distributed PRNG. Good enough for lottery, raffles, dice, and decision-making.
Can I use this for passwords?
No. Math.random isn't cryptographically secure — its output can be reverse-engineered if an attacker observes enough samples. For passwords or session tokens, use your operating system's CSPRNG (crypto.getRandomValues in the browser, crypto.randomBytes in Node).
How is this different from a lottery quick pick?
Random Numbers lets you set the range. Quick Pick locks the range to a specific lottery's rules — Powerball forces 5 of 69 plus a bonus from 1 to 26, Keno forces 10 of 80, and so on. Pick Quick Pick if you have a real ticket; pick Random Numbers if you want flexibility.