GenerateRandomSearch

Random Table Builder

A picker gives you one answer now. A table is something you print and keep, and roll on for a whole campaign. The awkward part of building one by hand is the arithmetic: weights almost never divide a die evenly, and rounding each one separately either loses faces or invents them. This apportions the die by largest remainder so the ranges always add to exactly the number of faces, and shows you the odds each row actually has rather than the weight you asked for.

What this generator does

Takes a weighted list and partitions a die across it. Every face from 1 to the die size is assigned to exactly one outcome, no face twice and none left out, and each row's stated probability is calculated from the range it actually holds rather than from the weight that was requested. The two numbers differ more often than people expect, which is the whole reason to build the table with something rather than by hand.

How to use this tool

  1. List your outcomes, one per line.
  2. Add a comma and a number to weight a line — “Hostile patrol, 2” is twice as likely as a plain entry.
  3. Choose the die you will actually roll.
  4. Build the table, then copy it into your notes or print it.

Understanding the controls

Outcomes
One per line. A trailing comma and number sets a relative weight; anything without one weighs 1. A comma inside a line with no number after it stays part of the label, so “A rusty, bent key” works as written.
Die
The table is built to fit this die exactly. A d100 gives fine control over rare results; a d6 forces every outcome to be reasonably common. If you have more outcomes than faces it says so rather than dropping any.
Shuffle the order
Off by default, because most people write their list in the order they want it read. Turn it on to randomise which outcome sits at which end of the die, which matters if your players have learned that low rolls are bad.
Seed
Only affects the shuffle. With a seed the same list produces the same arrangement every time, which is what a published table needs.

Common use cases

  • Building an encounter table where some results should be rarer than others
  • Turning a pile of loot ideas into something you can roll on at the table
  • Making a d100 table without doing the percentage arithmetic by hand
  • Checking whether a rare result is actually rare enough to be worth a line
  • Converting a list from a notebook into a table with honest published odds

How this generator works

Faces are apportioned by largest remainder: each outcome's exact share is calculated, everyone takes their whole number of faces, and the leftover faces go to whoever was closest to earning another. That is the same method the site uses for word counts and session minutes, and it guarantees the totals are exact. Any outcome that would round down to zero faces is then given one, taken from the largest, so a rare entry cannot silently vanish from its own table. The finished table is re-read before display: the ranges must be contiguous from 1 to the die size, and each stated chance must match the span it is printed against.

Randomness and fairness

Building the table involves no randomness unless you turn on shuffling. With shuffling and no seed the browser's cryptographically secure generator is used; with a seed a small deterministic one, which is reproducible and therefore explicitly not cryptographically secure. Rolling on the table afterwards is up to you and your dice.

For how randomness is produced across the whole site, see how Generate Random works.

Assumptions this tool makes

  • You will roll a single fair die of the chosen size, so every face is equally likely.
  • Weights are relative to each other rather than being percentages.

Limitations and good to know

  • It builds one flat table. Nested tables — where one result sends you to another table — are not supported.
  • Standard dice only. A table for 2d6 has a bell-shaped distribution rather than a flat one, and is a genuinely different object.
  • Weights are relative, not probabilities. Writing 50 does not mean 50%.
  • Nothing is stored between visits, so keep a copy of anything you want to reuse.

Common mistakes

Assuming the weights are the odds
They are ratios, and they get rounded to whole faces. A 3:2:1 split of a d20 cannot be exact, which is why the table prints what each row really got.
Giving a rare result one face on a d6
That is a 17% chance, which is not rare. If something should be genuinely uncommon, the die has to be big enough to express it.
Writing more outcomes than the die has faces
A d6 cannot distinguish eight results. Use a larger die or merge entries — the tool refuses rather than quietly dropping two of them.

Practical tips

  • Put the dull common results at the low end and the interesting rare ones high; players remember rolling a 20 more than the outcome attached to it.
  • If two entries end up with the same number of faces, consider merging them — the distinction is not doing any work.
  • Build the table on a d100 first to see the true proportions, then decide whether a smaller die is honest enough.

Privacy and your data

Your table is built entirely in your browser. Nothing you type or copy is sent anywhere, and nothing is stored between visits.

Frequently asked questions

Why does my 3:2:1 split not come out as 10, 6.7 and 3.3?
Because a die has whole faces. The shares are apportioned by largest remainder so they add to exactly the die size, and the table prints the chance each row genuinely ended up with.
Can I build an encounter table or a loot table with this?
Yes — that is the same job. The tool is deliberately one configurable builder rather than several near-identical pages, because the workflow does not change with the subject matter.
What happens to an entry that is too rare to earn a face?
It is given one anyway, taken from the largest entry. An outcome that silently disappeared from its own table would be a worse failure than a slightly imprecise weight.