TextFizz
  1. Home
  2. Tools
  3. Random Number Generator

Random Number Generator

Set Min and Max, choose how many numbers you want, press Generate — that is the whole tool. Every number comes from your browser's cryptographic random generator with modulo bias removed, so 1 and 100 are exactly as likely as 57. Tick No duplicates when you are drawing giveaway winners or lottery-style numbers.

Everything runs in your browser. What you type is never sent to our server.

Try also:🎱 Magic 8 Ball🎲 Dice Roller⚔️ Random LoL Champion🕹️ Random Game Picker
⧉ Embed this tool

How to use

  1. 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.
  2. Set How many — from 1 to 1000 numbers in a single draw.
  3. Tick No duplicates if the same number must not come up twice (giveaway winners, lottery-style picks, shuffling a numbered list).
  4. 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.
  5. 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 needMinMaxHow manyNo duplicates
Yes / no, first pick, who starts121off
A die roll161off
Percentage roll for a random event11001off
One winner out of 240 giveaway entries12401off
Three winners out of 240 entries12403on
Random game from your numbered library of 871871off
Six lottery-style numbers1496on
Random map out of a pool of 7171off
Random weapon slot for a challenge run151off
A four-digit code100099991off

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.

  1. Freeze the entry list first and post it — a comment list, a spreadsheet, an exported CSV, anything the audience can count.
  2. Number the entries from 1 to N. Duplicated usernames get one number, not three.
  3. 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.
  4. 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.
  5. 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.

EntriesChance for one entry (1 winner)Chance for one entry (3 winners, no duplicates)
502%6%
1001%3%
2400.42%1.25%
10000.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.

DrawRange 1–100Range 1–1000
5 numbers9.7%1.0%
10 numbers37.2%4.4%
20 numbers87.0%17.4%
25 numbers96.2%26.1%
40 numbersover 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.

RangeWhat the number meansExample
1–100Loot roll, highest takes itTwo players want the same drop
1–7Position in a numbered map poolWhich map the next scrim is played on
1–5Loadout or weapon slotYou play the round with whatever comes up
1–10How harsh the self-imposed challenge is10 means no scope, no crouch, no comms
1–20Index in a written list of challengesNumber the list first, then draw
1–4Who buys, who drops, who callsFour 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.

Related tools

Latest guides