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;
        }