Generates a random value from a Weibull distribution.
double weibull(double shape, double scale) { return scale * math.pow(-math.log(_random.nextDouble()), 1 / shape); }