Standard dice notation: 'XdY+Z' means roll X dice with Y sides each and add modifier Z. Examples: 1d20+5 (one twenty-sided die plus 5, common D&D attack roll), 3d6 (three six-sided dice, classic D&D ability score, range 3-18 with mean 10.5), 4d6 drop lowest (four six-sided dice, keep top three - slightly higher mean, common alternate D&D method). The roller supports the standard expressions and shows individual die results so you can verify the sum.
Each die uses crypto.getRandomValues() to fetch random bytes from the OS entropy pool, then maps them to the die range using rejection sampling to avoid modulo bias. This guarantees each face has exactly equal probability - 1/6 for a d6, 1/20 for a d20, 1/100 for a d100. Multiple dice are rolled in sequence, each independent, so the joint distribution matches physical dice exactly.
Probability distributions matter for gameplay design: 1d20 is uniform (5% chance per number), feels swingy. 3d6 is bell-curved (sum range 3-18, mean 10.5, most rolls cluster around 10-11) - feels more 'reliable' but rare extremes. Knowing these distributions helps players estimate odds: rolling 15+ on a d20 is 30% chance; rolling 15+ on 3d6 is only ~9%. Both useful for different game design intents.