Improve LinearWeightedRandom to use base and slope
Improve tests for Random class
Reduce duplicated code in WeightedRandom for determining weights
More tests to check for invalid weights