Methodology
How TableRoll calculates rolls, probabilities, and random results.
Dice notation
TableRoll parses dice expressions into an abstract syntax tree. Supported forms include NdS, modifiers, keep highest/lowest, drop highest/lowest, exploding dice and success-counting thresholds.
Randomness
Rolls use crypto.getRandomValues where available, falling back to Math.random only in environments without the Web Crypto API. Results are generated entirely in the browser; nothing is sent to a server for rolling.
Probability
Where computationally practical, distributions are calculated by exact enumeration. For very large pools or keep/drop selections, a clearly labelled simulation fallback is used.
Weighted tables
Relative and percentage weights are normalised to a cumulative distribution. Range-based tables validate that ranges cover the die size without gaps or overlaps.
Rounding
Probabilities are rounded to one decimal place for display. This means very small probabilities may appear as 0.0% while still being technically possible.