Random Number Generator
Generate random integers using cryptographically secure randomness — entirely in your browser.
How to use this tool
Set a minimum and maximum (inclusive), choose how many numbers to generate, and optionally check "No repeats" to guarantee unique values within the batch. Press "Generate".
About this generator
Numbers are drawn using crypto.getRandomValues() with rejection sampling: random bytes are re-drawn whenever they would introduce bias (because the range size isn't a power of two), so every integer in the range has an exactly equal chance of being picked — unlike a naive Math.random() * range approach, which is both not cryptographically secure and can be subtly biased.
100% client-side. Nothing generated here is ever transmitted, logged, or stored.
Frequently asked questions
Is this truly random?
It uses crypto.getRandomValues(), the Web Crypto API's cryptographically secure random number generator, not Math.random(). Numbers are drawn using rejection sampling, so every value in the chosen range has exactly equal probability — no bias toward the low or high end of the range, which naive modulo-based approaches can introduce.
What does 'no repeats' do?
When enabled, each generated number is guaranteed to be unique within that batch — useful for things like drawing raffle numbers or picking several distinct items from a range. It requires the range to contain at least as many values as the count you're generating.
Are the generated numbers sent anywhere?
No. Generation happens entirely in your browser. Nothing is transmitted, logged, or stored.