I want to make character stats that fit within certain bell curves depending on choices during character creation (for example race, gender, class, sprokets amount, whatever).

And I am wondering how I figure how I calculate what dice I need to attain the curve I want, I will use for each stat a different way of rolling it, whatever one I find most appropriate...

For example I might want a bell curve more accentuated (ie: everyone is almost certainly a the center), or one that is not only accentuated, but skewed to one side or another (for example, a random number between 1 and 100, but that most of the times rolls 70 instead of 50)

Or maybe bowl shaped curves, or slopes, or senoidal (dunno what would be the use of that though :P)

So, how I can learn more about this? (I suspect the subject is big enough that you cannot fit only in one answer here)

  • 2
    \$\begingroup\$ Anydice can be used to find out probability. Technically speaking, Mathematics.se may be better for this, since you're talking about advanced probability. In my personal experience, it's easier for game designers to build mechanics around the dice than to work the opposite way around. \$\endgroup\$ Commented Feb 19, 2014 at 17:29
  • \$\begingroup\$ I found anydice some minutes ago, but I did not found how to for example calculate on it ignoring low or high dice. (or how to make a bowl). \$\endgroup\$
    – speeder
    Commented Feb 19, 2014 at 17:32
  • 8
    \$\begingroup\$ This sounds like a question for Stats.SE or Math.SE. There's nothing here that requires knowledge of RPGs, and they are definitely far more expert in dice and probabilities than we are, especially weird problems like working backwards from a target curve to the dice you'd need. \$\endgroup\$ Commented Feb 19, 2014 at 17:35
  • 1
    \$\begingroup\$ Just in case your "Related" list didn't pull this one up, you can also check out this post: rpg.stackexchange.com/questions/15971/… \$\endgroup\$
    – Zimul8r
    Commented Feb 19, 2014 at 18:02

5 Answers 5


There's two parts to this answer - range, and distribution.

I'm going to talk about dice rolls as rolling a total number of dice, choosing a number of results to keep (most usually all of them), summing them, and optionally adding/subtracting a fixed number.

Too many people assume that the range of any roll is 1-max, but remember that each die can roll a minimum of 1, so your range is [number of dice kept] to [sum of kept die maximums] in reality. You can correct to a 1-X range by subtracting a fixed number (3d6-2 is 1-16 range), but remember that this reduces your total too.

The distribution part is covered pretty well above, but for completeness: A single die will give you a flat line, or an equal chance of rolling each result. The more dice you roll (not keep), the more "normal" (or steeper) your bell curve. This means that a higher percentage of your rolls will be toward the peak of your distribution. The more dice you discard (ie roll, but not keep), the more slanted your distribution. This moves the peak of your distribution away from the mid-point of your possible range. Keeping highest dice slants in one direction, keeping lowest slants the other. Adding or subtracting a fixed number moves the entire distribution up or down, it does not change the curve. Mixing die values does not slant your curve, it allows you to get to specific target ranges with specific "normal-ness" in your bell curve (ie a specific total of dice). ie 1d20 + 1d4 will be less steeply curved than 6d4, with the same maximum (and lower minimum).

Rolling a large pool of dice, and picking the highest or lowest single die, will give you each side of a bowl curve. Randomise the high/low pick as well, and you get a bowl.

Multiple peaks can be created in a similar two-step process, with the first roll modifying something about the second roll. For example, you could have "Roll 5d6 for damage, save for half damage." This would have one peak at 9, for cases where the save has been made, and another peak at 17, where the save has not been made. The height of each peak can be adjusted by the difficulty of the save.

This should help you to get a good starting point - use anydice.com to check your distribution and see if it's what you wanted.

  • \$\begingroup\$ Is there a way to get anydice.com to show the probability of nested rolls? For example, (1d4)d6 (meaning roll 1d4 first, then roll as many d6 as the result of the 1d4 roll) \$\endgroup\$ Commented Feb 20, 2014 at 1:25
  • 2
    \$\begingroup\$ (1d4)d6 works - I'm surprised, but it does :) \$\endgroup\$
    – Ryno
    Commented Feb 20, 2014 at 5:45
  • \$\begingroup\$ I tried that before commenting, and got an error. I probably mistyped something. Will try it again. Thanks. Edit: Got it to work. I had some extra [] around it that it didn't like. Thanks. \$\endgroup\$ Commented Feb 21, 2014 at 3:27

If you want your curves flat, use a single die. If you start using two dice, the curve becomes a bell and the more dice you use, the highest the middle peak.

This is the graph for a d20 roll This is the graph for 2d8+1d6-2

One easy way to get curves slanted to one side is to roll some dice and then remove the best or the worst ones before totalling.
D&D's standard roll 4, keep best 3 has a 3-18 range with its most probable result being a 13 instead of a roll 3's 10 or 11.
The more dice you roll, the more you need to ignore and the more your curve will be skewed.

Anything more than this, like drawing the exact dice procedure given the exact result distribution is something you'd need an algorythm for and would be better asked in math.se


There are several statistics which measure the shape of a distribution,

  • mean - where is the average for the distribution
  • median - where is the middle-point for the samples
  • variance - how tightly clustered the samples are around the mean
  • standard-deviation - square root of variance
  • skewness - this is whether the curve is weighted left or right
  • kurtosis - this measures how steep the peak of a curve

Assuming you have fair dice, then you need not consider that as a factor.

Adding (subtracting) a constant value to the dice roll would increase (decrease) the mean.

Adding more dice of the same type will increase the kurtosis, the height of the peak, and reduce the variance (more results closer to the mean).

Mixing dice with different numbers of sides would average the mean between the expected mean from the different ranges, and stretch (flatten) the curve.

discarding low (high) dice would skew the curve higher (lower).

Rolling N dice and keeping the highest K < N will skew the distribution right.

Rolling N dice and keeping the lowest K < N will skew the distribution left.

Changing the numbers on the faces can shift the curve low or high (depending upon the numbers chosen for the faces).

dividing (multiplying) by a dice face (ex: 3d6/6) would increase height of curve, reduce range.

A few examples,

A single d6, d8, d10, d12 or d20 produces a uniform distribution.

Two d6 added together produce a triangular distribution. Three d6 added together produce a steeper distribution, more similar to normal than triangular.

A d12+2 produces a uniform distribution shifted right.

Two d6+6 produces a triangular distribution shifted right.

Four d6/4 produces a curve with a higher kurtosis, but range similar to d6

What do the following look like?

  • d4+1?
  • d8+2?
  • d6+1?
  • 4d4-4?
  • d20+5?
  • 5d20/5?

Besides anydice.com, there are some programs you can download that create dice curves and display them as charts: http://www.dicecaddy.com/ http://www.fnordistan.com/smallroller.html

In addition here is a useful page that explains all the math Ryno was talking about, with pictures: http://www.rpgscience.com/2013/07/probability-bell-curves-toll-for-thee.html


My advice is to rethink the tables you're rolling against rather than trying to perform probability wizardry with dice. There are a couple of ways to do this. The first is to just add modifiers to the basic die roll, so a hobbit gets -15 to his status roll because there are no hobbit nobles but elves get +d20 for whatever reason.

The second is to cross-index die results by whatever other categories you want to use. So if 3d6 is the normal die roll, you have a table with values from 3-18 along the left side and various races or whatever along the top, and just have 10-11 be what the average score for that race will be, 3 the minimum, 18 the maximum, and then interpolate the rest of the chart. This isn't as much work as it sounds, and when it actually comes time to create characters it will go much faster at the table than having completely different die rolls for every race/class/gender/alignment/whatever.


Not the answer you're looking for? Browse other questions tagged .