The official D&D 5e rule for generating random ability scores is to roll four 6-sided dice, total the highest three, and record the result. This is repeated six times, and the scores are assigned to Strength, Dexterity, Constitution, Intelligence, Wisdom, and Charisma however the player chooses.

The disadvantage of this approach is that there is a chance — a 31% chance, as it turns out — that your character is going suck.

To remedy this, D&D 5e provides two other methods to determine ability scores (i) assigning the scores 15, 14, 13, 12, 10, and 8 instead of rolling and (ii) buying ability scores using 27 points.1

Comparing Ability Scores

One way to decide if a character’s ability scores suck is to look at the total of the six ability score modifiers.

Ability Score Modifier
15 +2
14 +2
13 +1
12 +1
10 0
8 -1
Total +5

For the official, assigned scores the total of the ability score modifiers is +5.

How Good Are Random Ability Scores?

For a randomly generated character, the average sum of the six ability score modifiers is 5.24, which corresponds nicely to the +5 total for the scores 15, 14, 13, 12, 10, and 8.

The following figure shows the probability distribution of the sum of the six ability score modifiers compared to rolling 3d6.2

Sum of Ability Score Modifiers

Unfortunately, there is a decent chance (31%) that a randomly generated character will have less than a +5 total for all six ability score modifiers; in which case, the player would have been better off assigning the scores 15, 14, 13, 12, 10, and 8.

Random vs. Assigned Ability Scores

If the choice is between either randomly rolling or assigning abilitity scores, a player is probably better off assigning 15, 14, 13, 12, 10, and 8. There is a 59% chance you can do better, but also a 31% you will do worse.

As a general rule, random doesn’t benefit the player.

  1. Player’s Handbook, page 13. 

  2. The average result of 3d6 is 10.5 (+0 ability score modifier). The average result of the highest three of four 6-sided dice is 12.24 (+1 ability score modifier). The Python scripts and were used to calculate these results.