Benford’s law, or why you shouldn’t use a D10 for generating some random numbers

This applies to all games where you want to generate a random number to describe something. In many cases you cannot just use a D10 since Benford’s law says that the lower numbers will have a higher probability.

Benford's law
Benford’s law – Public domain

This law is usually true when applied to things that grow exponentially. Like the population modifier digit (the P in the PBG-number) in the extended UWP for Traveller. Why is it so? Here is an explanation! A shorter explanation is that to change the first digit from 1 to 2, the population needs to increase 100%. To change the first digit from 8 to 9 the population needs to increase 12%. This means that the population digit will stay longer at lower values and therefore the lower values will be more likely.

Something else that is interesting for Traveller, Benford’s law can also be applied on asteroid sizes, since these has been built up of smaller objects over time.

It can most likely be used for anything that is big and varied enough like the size of buildings, the size of villages or towns, the size of space ships etc…

If you use a D10 to get a first digit for something that should behave according to Benford’s law, you will create a statistical anomaly. Doing it for one, or a few planets doesn’t matter, but if you do it for the P in the PBG-number of a subsector or something larger the result you get will be very unlikely.

So stop using that D10 now! Write a simple program on your calculator or computer that calculates the first digit according to Benford’s law!

For those who still (for some reason) needs to use dice, here is a table with a distribution that is close enough to the Benford distribution using 2D6, like you should do in Traveller.

2D6 First Digit
2 1
3 7
4 5
5 3
6 1
7 2
8 1
9 4
10 6
11 8
12 9

Just for fun, test Benford’s law for a number of datasets. It works!

4 thoughts on “Benford’s law, or why you shouldn’t use a D10 for generating some random numbers”

  1. Basically I don’t see how this works with the P value of the PBG series, since it would eliminate die back worlds… I wanted to use this but without the possibility of 0, it’s not that useful.

  2. A number doesn’t start with 0. 0 times anything = 0.

    The P in PBG is the population modifier. Not the population number.

    Barren world would have both a population code of 0 and P = 0.
    But this is a special case where you assign a P = 0 to all barren worlds.

  3. My solution to this problem is to use algorithmic numbers–or close approximations, based on log 2 = about 0.3. So:
    0 -> x1.00
    1 -> x1.25
    2 -> x1.6
    3 -> x2.0
    4 -> x2.5
    5 -> x3.2 (3.16)
    6 -> x4.0
    7 -> x5.0
    8 -> x6.3
    9 -> x8.0

Leave your reply