I need to generate numbers from a Pareto distribution (https://en.wikipedia.org/wiki/Pareto_distribution) for a game I'm making. Ideally with xm=10, and alpha = 2, but approximately is good enough. Is there anyway I can do this? I want to do it an "analogue" way (like with dice, cards, etc.) Thank you.
One way you could sort of accomplish this for any distribution is to pre-compute a large number of samples (through any method, pulled either at random or evenly spaced) and then put them in a table indexed by your choice of analog randomizer. For example, put 100 samples in a 10x10 grid, and then have players roll two 10-sided dice and look up the corresponding value.
I suggest you stop reading now :) but here's a silly alternate answer which gets you arbitrarily close to the exact distribution for a fixed level of precision and maximum value. Pick your precision - say, integers - so then pre-compute the values of the CDF at each integer up to your maximum. For Pareto, the first few values look like:
Give this table to the players. Then to pull from the distribution, repeatedly roll a d10 to generate digits of a real number, and stop when you can tell which thresholds it's between. So for example if the first roll is a 2 then you can stop immediately with result 11, because every real beginning with 0.2 is between the 11 and 12 thresholds. But if the first roll is a 3 then you have to roll again - after say 3-0-0 you would have the result 11, but 3-1 or 3-0-6 would be a 12 and for 3-0-5 you'd have to keep rolling. In this way you will achieve exactly a probability of 0.173553719 of drawing a 10, etc.