Ability score rolling method calculator powered by Icepool

Generate each ability score by rolling d4 + d6 + d8 + d10 + d12 + d20 + ,
rerolling s and below , keeping the highest dice.
Generate each ability score time(s) and keep the highest.
Generate ability scores, keeping the 6 highest.
Scores not between and are
If fewer than scores are at least , restart the entire array from the beginning.

Probability distribution of the 6 highest ability scores

Show:
Rank Mean 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Highest
2nd highest
3rd highest
4th highest
5th highest
6th highest
Mean

Multiple arrays and total price

(The preceding chart and table are for a single array.)

Roll array(s) and keep the best.
Pricing:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
Show:
Mean SD

Notes

How does it work?

I built this using Pyodide, Chart.js, and of course, my own Icepool Python library. A polynomial-time algorithm for keep-highest allows this calculator to deliver precise results at an interactive rate. It runs in your own browser, not requiring a server once loaded.

Compare previous AnyDice and Monte Carlo approaches.

If you want to play with Icepool more directly, try this example JupyterLite notebook, which computes the distributions of the total ability scores generated by the four Advanced Dungeons & Dragons 1st Edition methods.

Questions, comments, or suggestions? Find me on Reddit or Twitter.