This generator picks lucky numbers for lottery tickets, raffles, games, prize draws or just for fun. You set the lowest and highest number, choose how many to draw, and decide whether repeats are allowed. It is a flexible, general-purpose draw tool that works for any custom range.
How it works
Each number is drawn with the browser’s Web Crypto API (crypto.getRandomValues) using rejection sampling: random values that would fall outside an exact multiple of your range are discarded and re-drawn, which removes the modulo bias that plain random-number tricks suffer from. The result is that every value in your range is genuinely equally likely.
- With No repeats on, each drawn number is unique — the standard for lottery-style draws.
- With it off, the same number can appear more than once, useful for dice rolls or independent picks.
Everything runs locally; the crypto source needs no network connection.
Why crypto randomness matters
Most websites use JavaScript’s Math.random(), which is fast but not cryptographically secure and can produce slightly skewed results depending on implementation. This generator uses crypto.getRandomValues, the same API that browsers use for security operations like generating encryption keys. For lucky number purposes, the practical difference is that you get numbers that are genuinely, provably unbiased — no number in your range is favored over another.
Rejection sampling is what keeps the distribution perfectly flat. If your range has, say, 49 values and the random pool is 256 values, simply taking random % 49 would make some numbers slightly more common than others (because 256 does not divide evenly by 49). Rejection sampling discards the “overflow” values and re-rolls, so every number in the range is represented equally.
Common use cases and configurations
| Use case | Range | Count | Repeats |
|---|---|---|---|
| Standard 6/49 lottery | 1–49 | 6 | Off |
| EuroMillions-style (5 main) | 1–50 | 5 | Off |
| Pick a lucky day of the month | 1–31 | 1 | N/A |
| Roll two dice simultaneously | 1–6 | 2 | On |
| Raffle ticket draw (100 tickets) | 1–100 | 1 | N/A |
| Random team assignment (32 teams) | 1–32 | 5 | Off |
Lucky numbers by tradition
Across different cultures, certain numbers carry particular significance:
- 7 is considered lucky across much of the Western world and in Chinese tradition.
- 8 is especially auspicious in Chinese culture, associated with prosperity.
- 3 recurs as lucky in many Indo-European and Norse traditions.
- 13 is considered unlucky in many Western cultures, but lucky in Italy.
- 4 is often avoided in East Asian cultures due to its phonetic similarity to “death.”
This generator doesn’t bias toward any cultural tradition — every number in your chosen range is exactly equally likely. If you want to weight picks toward culturally significant numbers, you can manually pick those and let this tool fill in the rest.
Example
To draw 6 unique lucky numbers between 1 and 49:
| Setting | Value |
|---|---|
| Range | 1 to 49 |
| How many | 6 |
| No repeats | On |
| Example result | 3, 11, 19, 27, 34, 48 |
Each click produces a fresh, unbiased set. Everything runs locally in your browser and nothing is stored or uploaded.