public static Single NextSingle(this Random random, Single lowerBound, Single upperBound) { lowerBound.ThrowIfStrictlyGreaterThan(upperBound, nameof(lowerBound)); var value = random.NextSingle() * (upperBound - lowerBound) + lowerBound; return value; }