Generate random numbers with customizable ranges, including integers, decimals, and number sequences.
A random number generator produces unpredictable values within a range you define — useful for drawing raffle or lottery numbers, seeding tests, sampling data, assigning random IDs, or simply making an impartial choice. This tool lets you set a minimum and maximum, choose whole integers or decimals, and generate anywhere from a single value up to ten thousand at once.
Numbers are produced with the browser's Web Crypto API (crypto.getRandomValues) rather than Math.random, and it uses rejection sampling to eliminate the modulo bias a naive remainder would introduce. In practice that means every value in your range is equally likely, so the results are fair as well as unpredictable. You can also require unique values — handy for lottery-style draws — and sort the output ascending or descending after it is generated.
Everything happens locally in your browser, so the numbers never leave your device and the tool works offline. Copy the whole set at once or click any individual value to copy it on its own.
They are generated with the browser's Web Crypto API (crypto.getRandomValues), a cryptographically secure source, using rejection sampling to remove bias. Every value in the range is equally likely.
Yes. Uncheck Allow duplicate values and the tool will draw a unique set, which is ideal for lottery-style picks. You cannot request more unique values than the range contains.
Yes. Choose the decimal number type and set the number of decimal places, from 1 up to 10, to control precision.
Up to 10,000 values in a single batch. You can copy them all together or copy any individual number on its own.
No. Generation happens entirely in your browser, so nothing is sent over the network and the tool works offline.