# Functions
ForkRandomProvider creates a child random provider from the current random provider by using its random data as a seed.
NewWeightedRandomChoice creates a WeightedRandomChoice with the given underlying data and weight to use when added to a WeightedRandomChooser.
NewWeightedRandomChooser creates a WeightedRandomChooser with a new random provider and mutex lock.
NewWeightedRandomChooserWithRand creates a WeightedRandomChooser with the provided random provider and mutex lock to be acquired when using it.
# Structs
WeightedRandomChoice describes a weighted, randomly selectable object for use with a WeightedRandomChooser.
WeightedRandomChooser takes a series of WeightedRandomChoice objects which wrap underlying data, and returns one of the weighted options randomly.