Asistente RD

Random number generator

Generate unbiased random numbers in your browser with cryptographic randomness: pick a range, how many, and a no-repeats option for raffles and draws.

Free · No sign-up · In your browser

Range: 100 possible numbers

Results

Press Generate to get your numbers.

Numbers are generated in your browser using the system cryptographic generator (crypto.getRandomValues) with rejection sampling to avoid bias. Nothing is sent to any server.

Share on WhatsApp Last reviewed: July 8, 2026

What a random number generator is for

A random number generator hands you one or more numbers picked at random from a range you choose. It’s the fastest, most transparent way to settle anything where nobody should be able to predict or rig the outcome: social-media giveaways, raffles with numbered tickets, drawing a sample for a survey, assigning slots, or game moments like deciding who goes first.

Instead of scribbling names on paper, you set the range and the count and the draw happens in your browser instantly. Everything stays on your device, so the numbers never touch a server.

How to use it

  1. Enter the minimum and maximum of your range (both ends are included).
  2. Set how many numbers you need, from 1 to 1000.
  3. Turn on no repeats when every number must be unique, like a raffle where one ticket can’t win twice.
  4. Hit Generate, then Copy to drop the list into a chat, an email, or a spreadsheet.

With “no repeats” on, the count can’t exceed how many numbers fit in the range: you can’t draw 10 unique numbers between 1 and 5.

Truly random vs pseudo-random

Most built-in random functions, such as Math.random, are pseudo-random: they start from a seed and run a formula. They’re fast but predictable if the seed is known, and they’re not fit for anything where fairness actually matters.

This tool uses crypto.getRandomValues, the browser’s own cryptographic generator, seeded from operating-system entropy. It’s the same grade of randomness used to create encryption keys.

To give every number in the range an exactly equal chance, we apply rejection sampling: we ask for random bits and throw away any value that would fall outside a clean multiple of the range, removing the bias a plain remainder would introduce.

Worked example

Say you simulate a die (1 to 6) using a single byte, which holds 256 values (0 to 255). Because 256 isn’t a multiple of 6, mapping with a remainder would favor some faces. The fix: accept only values 0 through 251 (252 of them, since 252 = 42 × 6) and reject 252, 253, 254 and 255.

Now each face maps to exactly 42 values, and the chance any single try is rejected is 4 out of 256 — just 1.56%. In a real draw of 6 numbers from 1 to 49 there are 13,983,816 possible combinations, and every one is equally likely.

Common use cases

UseMinimumMaximumCountNo repeats
One winner among 500 entries15001No
Raffle: 3 prizes from 1000 tickets110003Yes
Sample of 10 from a list of 200120010Yes
Roll one die161No

Frequently asked questions

Is it really random?

Yes, in the strongest practical sense a browser offers. We use crypto.getRandomValues, which pulls entropy from the operating system and is built for cryptographic use. There’s no seed you could guess and no repeating pattern, unlike ordinary pseudo-random functions.

How do I run a fair, verifiable draw?

Number your entrants consecutively (1, 2, 3…) and note the total before you draw. Put that total as the maximum, leave the minimum at 1, and generate. To make it verifiable, run the draw live or screen-record it showing the range and the result, so anyone can confirm nothing was changed afterward.

Why turn on “no repeats” for a raffle?

Because in a raffle a single ticket shouldn’t win twice. With “no repeats” each number comes out only once, so you can award several different tickets in one draw. Left off, the same number may appear more than once — fine for dice or simulations, but not for handing out unique prizes.

Is there a limit on the count?

You can generate up to 1000 numbers per draw. With “no repeats” on, the count can also never exceed the total numbers available in the range you picked.

Related tools