Dice Roll Table Generator
Building a roll table by hand is where homebrew quietly goes wrong. Twelve entries on a d100 means ranges of eight and a bit, so somebody rounds, and then 97–100 lands on nothing or two entries overlap at 41. This assigns the ranges arithmetically: every number on the die belongs to exactly one entry, weights are honoured, and nothing is left uncovered.
What this generator does
Converts a weighted list into a die-range table and rolls on it. The encounter and treasure generators here produce content; this takes content you already have and makes it rollable. The arithmetic is the value: ranges are apportioned so they sum to exactly the die size, which is the step people get wrong by hand.
How to use this tool
- List the entries, one per line.
- Add a number after an entry to make it that many times more likely.
- Choose the die and press Build the table.
- Press Roll on it to use the table straight away.
Understanding the controls
- Table entries
- One per line. A trailing number is a weight, so 'Bandits 3' occupies three times the range of an unweighted entry — which is how a table makes something common without repeating it.
- Die
- d20, d50 or d100. A smaller die gives coarser ranges, so an entry weighted 1 on a d20 with fifteen entries may end up with a single number or none at all — the table shows exactly what each got.
Worked examples
- 6 entries on a d100
- Ranges of 17, 17, 17, 17, 16, 16 — summing to exactly 100.
- One entry weighted 3
- Takes roughly three times the span of the others, in one contiguous range.
- 20 entries on a d20
- One number each. Add a weight and something else has to give.
- What is never produced
- A table where 97–100 lands on nothing.
Common use cases
- Turning a list of encounters, rumours or loot into a usable roll table
- Weighting a table so common results really are common
- Making a printable table for a session without doing the arithmetic
- Checking an existing table covers the whole die
- Rolling on the table during play without leaving the page
How this generator works
Each entry's share of the total weight is turned into a whole number of die faces using largest-remainder apportionment — the same method used for allocating seats, and the reason the ranges sum to exactly the die size rather than approximately. Entries are then laid out in order, each starting where the previous one ended, so the table tiles the die with no gap and no overlap. An entry whose share rounds to zero faces is dropped rather than given a range it cannot own, and the table shows what remains.
Randomness and fairness
Building the table involves no randomness at all — the same entries and die always give the same ranges, which matters for a table you are going to print. Randomness appears only when you roll, using the browser's cryptographic random number generator over the die's range.
For how randomness is produced across the whole site, see how Generate Random works.
Assumptions this tool makes
- Each line is one table entry, and a trailing number is its relative weight rather than part of its text.
Limitations and good to know
- Ranges are contiguous — an entry cannot occupy 1–5 and 90–95, which some published tables do for flavour.
- On a small die with many entries, low-weighted entries can round down to nothing. The table shows which survived rather than silently dropping them.
- It builds and rolls tables; it does not write the contents, which is the part that makes a table worth having.
Common mistakes
- Dividing the die by the entry count by hand
- That is the step that produces gaps. Twelve entries into a hundred is 8.33 each, and however you round, the total stops being a hundred. Apportionment fixes it by construction.
- Repeating an entry to make it more likely
- Give it a weight instead. The result is the same odds in one contiguous range, which is easier to read and to print.
Practical tips
- Weight the boring outcomes heavily. A table where every result is dramatic stops being dramatic by the third roll.
- Use a d20 for a table you will roll often at the table, and a d100 when you want fine-grained rarity.
Privacy and your data
Your table entries stay in your browser. Nothing is uploaded, stored, or written into the page address. Analytics records that the tool ran and how many rows the table had, never their contents.
Frequently asked questions
- Why do the ranges not divide evenly?
- Because they usually cannot. Six entries on a d100 is 16.67 faces each, and faces are whole. The apportionment gives four entries 17 and two entries 16, which sums to exactly 100 — the alternative is a table with a gap in it.
- What happened to my entry?
- On a small die with many entries, an entry's share can round to zero faces. Rather than give it a range it does not own, the table drops it — use a larger die, fewer entries, or a heavier weight.
Related generators
- Random Encounter GeneratorGenerate a quick random encounter prompt for tabletop RPG sessions.
- Random Treasure GeneratorGenerate an evocative random treasure item for tabletop RPG loot.
- Custom Card Deck DealerBuilds a deck from your own cards, deals it without replacement, and keeps every card accounted for.