Generate random choices unevenly. This class is used to select random
choices from a list, with a probability weight places on each item
in the list.
This is often called a Roulette Wheel in Machine Learning texts. How it differs from
a Roulette Wheel that you might find in Las Vegas or Monte Carlo is that the
areas that can be selected are not of uniform size. However, you can be sure
that one will be picked.