Disclaimer: I am only familiar with D&D 3.x; I hope that this answer remains applicable to a broader set of editions, but cannot guarantee it.
TL;DR: Skip to the latest non-italic section name "Tailored Random Ability Score Generation" to see the proposed method.
Random Ability Score Generation is only partially the problem.
You have noted two different problems.
In other cases, a player may have their characters repeatedly commit suicide-by-monster so they can try to reroll for higher stats, which can be quite frustrating for the GM and other players.
The player is not satisfied by their character itself.
For example, one player character may end up much weaker or much stronger than the rest of the party, which can result in a poor experience for some of the players.
The players' characters do not function well together.
The Ability Score Generation plays a role in each, but is not the sole contribution factor. I still remember a terrible experience playing a sneaky character, where inexplicably the monsters would always immediately locate and attack my hidden character at the beginning of combat, like any other character. I felt cheated by the DM, who in turn considered that it was only fair that my character be targeted. In the end, I switched to another character and play style. My character, in isolation, was not the issue; my DM handling of the character was not to my satisfaction.
This answer will focus on Ability Score Generation, just remember it may only be part of the issue.
Why yet another answer?
There are already many suggestions in this thread of random ability score generation which give the player some agency. I particularly like the Collective Generation from Oblivious Sage which allows choosing from multiple arrays and the Deck of Cards from Elial which allows control during the generation of the array.
I believe they are good, yet I believe they lack a critical component: defining, more precisely, the problem they are attempting to solve, so as to obtain a set of goals by which solutions can be measured.
This answer will therefore endeavor to first establish such goals; and then only propose a solution which satisfies them all.
Satisfaction
If your players are anything like me, then they invest a lot of time in creating a character. They'll start from an idea, refine it, research material, refine it further, drop some concepts, add some others, etc... Finally, after hours upon hours of labor, they'll end up with a pretty good idea of their character's strengths and weaknesses, background and future development, etc.
After so many hours spent refining and enriching the character, if they obtain an array of ability which either mechanically does not allow the character or thematically does not fit the character, then of course they'll be extremely disappointed.
Party Balance
A balanced Ability Score Generation, whether random or not, will not however solve party balance issues.
At one extreme, 8/8/8/8/18/8 before racial adjustment is a strong array for a Druid, but utterly crippling for a Monk or Paladin. At another extreme, 16/16/16/16/16/16 is excellent for Monk and Paladin, but is actually worse than the previous array for a Druid.
The point I am trying to make here is that Equality of Opportunities does not imply Equality of Outcomes. Some characters are inherently more dependent on their ability scores than others, and not all characters favor the same distribution (spiky vs flat).
Of course, a good Ability Score Generation is NOT sufficient to achieve a good Party Balance, however please do note that a bad Ability Score Generation can definitely sabotage it.
It is thus in the interest of the Dungeon Master to work with their players to identify the needs of their respective characters and ensure that no player feels left out by whichever Ability Score Generation method is selected.
For example, taking the Deck of Cards proposal, the composition of the deck can favor either extremes (more 6s and 2s) or medians (more 5s, 4s and 3s), with the former benefiting SAD1 characters and the latter benefiting MAD1 ones.
1 SAD: Single Ability Dependent; MAD: Multiple Abilities Dependent.
Tailored Spot Light
Where I make a slight digression about Party Balance and Session 0.
From experience, Party Balance is not as much a matter of capabilities, and more a matter of Spot Light Time. What matters is that in each session, each player should have roughly the same amount of time to "shine", where the scare quotes are used because different player/character pairs will shine differently.
I encourage the DM and players, in the session 0, to establish each character's roles in the party. For example, a Sneak could be:
- Primary Debuffer/Scout: their main role, where they should outshine anyone else.
- Secondary Damage Dealer/Party Face: their secondary role, where they can efficiently support others.
It is fine if multiple players share a Primary role, or if a role is left mostly unaddressed: what matters is coordinating expectations.
This also gives information to the DM as to what each player is coming for in the subsequent sessions. If the DM was planning a social game and one player starts explaining they've got this really cool Pyromaniac idea, it also gives time to address the discrepancy before any party has sunk too much time.
And finally, it should help the DM tailor their approach with each player. A player cannot create a cool concept character without the DM's approval and assistance. Approval to ensure that the character fits the narrative and assistance because the character's background and evolution will have to be woven into the narrative.
Ideal Random Ability Score Generation Requirements
Ideally, the Random Ability Score Generation should:
- Feel random: players picked it for the thrill, let them experience it.
- Feel fair: no player should feel cheated.
- Feel empowering: players should feel they have some control over the experience.
- Be exciting: no player should apprehend the step.
This is, obviously, very subjective, as it is all about the feeling of the players and not about any mathematical outcome.
There are, however, guidelines which can be extracted to inform the process:
- Feel random: some random process, such as dice or cards, should be included in the method.
- Feel fair: sharing should avoid envy and jealousy from creeping in.
- Feel empowering: the players should be driving the process, such as rolling the dice, drawing the cards.
- Be exciting (tailor): the players should have some degree of agency to tailor the outcome to their particular needs.
- Be exciting (fast): the players should not have time to get bored.
- Be exciting (simple): even players with rudimentary mathematical skills should feel at home.
Tailored Random Ability Score Generation
How to randomly generate Ability Scores for Fun and Profit.
Generating Ability Scores is laying the first stone of the campaign to come, it should be an exciting shared moment to kick the campaign off in style. Follow this quick guide to start the party!
- Each player creates a base array of 6 numbers, where each number is generated by rolling 3d6 and dropping the lowest. The base arrays are placed at the center of the table.
- Each player decides on a base array. It is perfectly acceptable for multiple players to opt for the same base array.
- Each player receives a pool containing the numbers [6, 5, 4, 3, 2, 1].
- Each player assigns the sum one number from the base array and one number from the pool to each individual Ability Score of their character. No number from the base array or the pool may be used twice.
That's it.
Evaluation.
First of all, the proposed method should satisfy all criteria above: the players are driving the process (empowering), rolling dice (random) and sharing the base arrays and pools (fair). The whole thing is accomplished quickly (exciting (fast)) and does not overtax one's mathematics capabilities (exciting (simple)). Furthermore, the players are given sufficient agency to adjust the resulting array to their needs (exciting (tailor)): either uniforming the scores, or skewing them further; choosing to keep a very low ability, or shoring it up.
Secondly, statistically speaking, the method produces relatively random results, yet with a sufficient degree of customization that different needs are catered for.
Using AnyDice, statistics for [highest 2 of 3d6]
:
- Average: 8.46.
- Median: 9.
- Minimum (0.46 %): 2.
- Maximum (7.41 %): 12.
From a player's perspective, considering 6 abilities are generated in this fashion using:
ABILITIES: 6 d [highest 2 of 3d6]
loop P over {1..6} {
output (P @ ABILITIES + (7 - P)) named "Ability [P]"
}
See output here.
This works well for a caster (SAD):
- 36.98 % of achieving 18 in the top score.
- 73.60 % of achieving at least 17 in the top score.
- 92.90 % of achieving at least 16 in the top score.
This also works well for a Barbarian (Str > Con):
- 6.73 % of achieving 17 in the second top score.
- 34.24 % of achieving 16 in the second top score.
- 69.29 % of achieving 15 in the second top score.
This also works well for a Monk (Str > Dex > Con > Wis) or Paladin (Str > Con > Wis > Cha):
- 12.46 % of having 4 10+ in the base array: 13+ in fourth top score.
- 38.81 % of having 4 9+ in the base array: 12+ in fourth top score.
- 70.75 % of having 4 8+ in the base array: 11+ in fourth top score.
Note: I am not quite sure how to compute the chances of a 13+ or 14+ in the fourth top score assuming the player assign +3 to the top, +4 to the second, +5 to the third and +6 to the fourth (aiming for uniformity). I'd appreciate help from an AnyDice guru.
Acknowledgements
Thanks to Oblivious Sage for their Collective Generation method; their answer was the first time I encountered the concept, and I believe sharing the results of the dice rolls is an excellent way to start a shared story.