On randomness that is actually random
Most “random” numbers a computer hands you come from a pseudo-random number generator— a formula that produces a sequence which looks random but is fully determined by its starting seed. Fine for shuffling a playlist. Not fine for a password.
Every draw here goes through crypto.getRandomValues(), the browser’s cryptographically secure source, and integer ranges are rejection-sampled rather than taken modulo — so a 1–100 roll is genuinely uniform instead of quietly favouring the low end.
The five modes
Numbers
An integer or a decimal between any two bounds. Sampling, lotteries, or settling an argument.
Passwords
Twelve characters is the usual floor, and every character class you enable widens the alphabet each position is drawn from. Length buys you more than cleverness does: a long passphrase beats a short string of punctuation.
Dice
The standard D6 plus the rest of the polyhedral set — D4, D8, D10, D12, D20 — rolled together, with the total.
Coins
One flip or many, counted by side.
Weighted events
For choices where the options are not equally likely. Give each outcome a weight; the percentages update as you type. An event weighted 3 against one weighted 1 takes 75% of the probability space.
Where the results go
Nowhere. The whole thing runs in your browser — no request is made, so a generated password never leaves the tab. Close it and the value is gone.