This tool generates a set of lottery numbers for any draw format. You set the number pool, how many numbers to pick and an optional separate bonus pool, and it returns a sorted set of unique numbers plus a bonus ball. It is for players who want a quick, fair “lucky dip” without thinking up numbers themselves.
How it works
The main numbers are drawn using a partial Fisher–Yates shuffle over the range 1 to the pool size, which guarantees a set of distinct numbers with no repeats. The randomness comes from the browser’s Web Crypto API (crypto.getRandomValues) with rejection sampling, so every number in the range is equally likely and there is no modulo bias. The final set is sorted into ascending order for easy reading. The bonus ball, if used, is drawn separately from its own pool, exactly as real lotteries handle it.
Example
For a classic 6-from-49 draw with a bonus from a pool of 49:
| Setting | Value |
|---|---|
| Number pool | 49 |
| Numbers to pick | 6 |
| Bonus pool | 49 |
| Example result | 4, 17, 23, 31, 38, 45 + bonus 12 |
Each click produces a fresh, unique set. Everything runs in your browser using the Web Crypto API — nothing is uploaded or saved.
Matching your local lottery format
Most national and regional lotteries follow one of a small number of formats. Here are common configurations to enter:
| Lottery | Pool size | Numbers to pick | Bonus pool |
|---|---|---|---|
| UK National Lottery | 59 | 6 | 59 |
| EuroMillions (main numbers) | 50 | 5 | — |
| EuroMillions (Lucky Stars) | 12 | — | 2 |
| Powerball (main) | 69 | 5 | 26 |
| Mega Millions (main) | 70 | 5 | 25 |
| Irish Lotto | 47 | 6 | 47 |
| Canadian Lotto 6/49 | 49 | 6 | 49 |
For a two-drum format like Powerball or EuroMillions, generate the main numbers first, then set up a second generation for the bonus drum separately.
Why it does not matter which numbers you pick
Every combination in a fair lottery has exactly the same probability as every other combination. There is no such thing as “hot” or “due” numbers in a properly run lottery draw — each draw is an independent event, and previous results have zero influence on future ones. A string of seven consecutive numbers is just as likely to win as any other specific combination.
This tool generates a valid, unique set so you do not have to choose — which is genuinely useful because humans are bad at generating random numbers intuitively. People avoid repeating digits, tend toward mid-range numbers, and cluster picks in ways that make them more likely to share a jackpot with other players who think similarly. A truly random computer-generated set avoids those biases.
Sharing jackpots
One practical reason to avoid birthdays and commonly chosen sequences (like 1, 2, 3, 4, 5, 6) is jackpot splitting. When a popular combination wins, dozens or hundreds of players holding identical tickets share the prize. A random pick tends toward less-popular combinations, which means that if it wins, you are less likely to split the jackpot. The expected value of any ticket remains the same; the variance of the prize improves slightly by avoiding commonly played numbers.
Privacy note
Numbers are generated entirely in your browser using the Web Crypto API’s crypto.getRandomValues() function with a Fisher-Yates shuffle and rejection sampling to eliminate bias. No numbers, requests, or any other data leave your device.