How to use
- Type the range in Min and Max. Any whole numbers work, including negative ones; if you put the larger number in Min, the tool swaps them for you.
- Set How many — from 1 to 1000 numbers in a single draw.
- Tick No duplicates if the same number must not come up twice (giveaway winners, lottery-style picks, shuffling a numbered list).
- Press Generate. The result appears in the big field; the numbers are separated by spaces for short draws and by commas once there are more than 20.
- Use Copy to put the whole result on your clipboard — handy for pasting into a Discord thread or a stream chat as proof.
Ranges people actually use
Almost every question that starts with "pick a random…" turns into a range and a count. Here are the settings for the ones that come up most often.
| What you need | Min | Max | How many | No duplicates |
|---|---|---|---|---|
| Yes / no, first pick, who starts | 1 | 2 | 1 | off |
| A die roll | 1 | 6 | 1 | off |
| Percentage roll for a random event | 1 | 100 | 1 | off |
| One winner out of 240 giveaway entries | 1 | 240 | 1 | off |
| Three winners out of 240 entries | 1 | 240 | 3 | on |
| Random game from your numbered library of 87 | 1 | 87 | 1 | off |
| Six lottery-style numbers | 1 | 49 | 6 | on |
| Random map out of a pool of 7 | 1 | 7 | 1 | off |
| Random weapon slot for a challenge run | 1 | 5 | 1 | off |
| A four-digit code | 1000 | 9999 | 1 | off |
The trick for anything that is not a number — names, teams, games, punishments — is to number the list first. Line 1, line 2, line 3, then draw in that range. The generator never sees your list, which is exactly why nobody can accuse it of favouring a friend.
How to draw a giveaway winner nobody can argue with
A random number by itself proves nothing. What makes a draw hard to dispute is the order you do things in.
- Freeze the entry list first and post it — a comment list, a spreadsheet, an exported CSV, anything the audience can count.
- Number the entries from 1 to N. Duplicated usernames get one number, not three.
- Say the range and the count out loud before you draw: "one to 240, three winners, no duplicates". Announcing it after the numbers appear is what makes people suspicious.
- Record the screen or roll live. The generator runs in your browser and keeps no log, so your recording is the proof, not our server.
- Post the numbers and the matching names together.
Odds are simpler than most people expect. With one winner, every entry has a 1/N chance: 1% at 100 entries, about 0.42% at 240, 0.1% at 1000. Drawing three winners with duplicates off roughly triples an individual entry's chance — about 1.25% out of 240 — because after each draw the pool of remaining numbers gets smaller.
| Entries | Chance for one entry (1 winner) | Chance for one entry (3 winners, no duplicates) |
|---|---|---|
| 50 | 2% | 6% |
| 100 | 1% | 3% |
| 240 | 0.42% | 1.25% |
| 1000 | 0.1% | 0.3% |
Where the numbers come from
The generator calls crypto.getRandomValues(), the Web Crypto API that browsers also use to build encryption keys. It fills a 32-bit slot with unpredictable bits — no seed you can guess, no repeating cycle you can wait out.
Raw bits are not a fair range on their own. A 32-bit value has 2^32 = 4 294 967 296 possible states, and that number rarely divides evenly by the size of your range. Take 1–100: 2^32 leaves a remainder of 96, so a plain value % 100 would hand the first 96 numbers one extra chance each. The fix is rejection sampling: any raw value that lands in that leftover tail is thrown away and a fresh one is drawn. For a 1–100 range that happens to roughly 1 draw in 45 million, and you never see the difference in speed, but every number in the range ends up with an identical share.
Ranges whose size is a power of two — 1–2, 1–8, 1–256 — divide evenly and never need a reroll at all. Everything else does, which is why the check is always on.
The alternative most sites use, Math.random(), is a pseudo-random generator: fast, fine for shuffling a background animation, but it is seeded and its output is a deterministic sequence. For anything with a prize attached, that is the wrong tool.
Duplicates on or off
With No duplicates switched off, each number is an independent draw, exactly like rolling the same die again. Repeats are not a bug — they are what real randomness looks like, and they show up far sooner than people expect.
| Draw | Range 1–100 | Range 1–1000 |
|---|---|---|
| 5 numbers | 9.7% | 1.0% |
| 10 numbers | 37.2% | 4.4% |
| 20 numbers | 87.0% | 17.4% |
| 25 numbers | 96.2% | 26.1% |
| 40 numbers | over 99.9% | 54.6% |
The table shows the chance that at least two numbers in the draw match. Twenty numbers out of a hundred repeat almost nine times out of ten — that is the same birthday-paradox effect that surprises people in a classroom of thirty.
Switch the checkbox on and every number in the result is unique. If you ask for more numbers than the range holds — 60 unique numbers between 1 and 50 — the tool quietly gives you the whole range instead, 50 numbers in random order. That is also the quickest way to shuffle a numbered list: set the range to 1–N, count to N, duplicates off, and read the result top to bottom as your new order.
Rolling for loot, challenges and house rules
Long before giveaway bots, players settled arguments by rolling a number. The convention has outlived every MMO that invented it: everybody rolls in the same range, the highest number takes the item, and a tie is re-rolled between the tied players only.
To run one here, set the range to 1–100, leave the count at 1, and either let each player press Generate on their own screen or roll for everyone yourself and post the list in order. Two habits keep it clean: state the range before the first roll, and re-roll ties instead of splitting the prize. A roll from last night is not a roll for tonight — a stale number is the easiest thing to argue about.
The same field also runs the small decisions that make a session interesting.
| Range | What the number means | Example |
|---|---|---|
| 1–100 | Loot roll, highest takes it | Two players want the same drop |
| 1–7 | Position in a numbered map pool | Which map the next scrim is played on |
| 1–5 | Loadout or weapon slot | You play the round with whatever comes up |
| 1–10 | How harsh the self-imposed challenge is | 10 means no scope, no crouch, no comms |
| 1–20 | Index in a written list of challenges | Number the list first, then draw |
| 1–4 | Who buys, who drops, who calls | Four players, one duty |
Written out, the pattern is always the same: turn the question into a numbered list, roll inside that list, and accept the result. The generator supplies the number; the fairness comes from agreeing on the range first.
What makes ours different
- Cryptographic randomness with rejection sampling, described above in full instead of a vague "provably fair" badge.
- Up to 1000 numbers in one draw, and a No duplicates mode that also works as a list shuffler.
- Negative and reversed ranges are handled instead of throwing an error.
- One Copy button gives you the whole result as text for a Discord message or a giveaway post.
- No account, no captcha, no ad covering the Generate button, and the page works on a phone.
What it deliberately does not do: it keeps no history between page loads, stores no lists of names, and has no weighted or "lucky" mode. A weighted draw is no longer a random draw, and history that survives a refresh would mean sending your numbers somewhere.
Privacy
Everything happens inside your browser. The range you type, the count and the numbers you get are never sent anywhere, there is no account and no log — so nobody, including us, can look up or change what you drew. Reload the page and the previous result is gone for good, which is why a screen recording is the right proof for a public giveaway.
FAQ
Is this random number generator actually random?
It uses crypto.getRandomValues() — the browser's cryptographic generator — plus rejection sampling to remove modulo bias, so every number in your range has exactly the same chance. It is not a seeded Math.random() sequence.
How do I pick a giveaway winner with it?
Number your entries from 1 to N, set Min to 1 and Max to N, leave How many at 1, and press Generate. For several winners, raise How many and tick No duplicates so the same person cannot win twice.
Can it generate numbers without repeats?
Yes — that is the No duplicates checkbox. Every number in the result is unique. Ask for more numbers than the range contains and you simply get the entire range in random order.
What is the largest range and how many numbers at once?
Min and Max take any whole numbers you type, negatives included, and you can draw from 1 to 1000 numbers in a single click. Decimal input is rounded down, and if Max is smaller than Min the two are swapped automatically.
Does it remember my previous numbers?
No. There is no history and nothing is stored: reloading the page starts a clean draw. Press Copy before you leave if you need to keep the result.
Can it predict lottery numbers?
No, and no generator can. It draws numbers with equal probability, which is useful for choosing which numbers to play, but a real draw is a separate independent event — past results change nothing about the next one.
Why did I get the same number twice in a row?
Because independent draws have no memory. In a 1–6 range the same value repeats about once every six draws, and that is the correct behaviour. Turn on No duplicates when repeats are not allowed.