public static SByte NextSByte(this Random random, SByte lowerBound, SByte upperBound) { lowerBound.ThrowIfStrictlyGreaterThan(upperBound, nameof(lowerBound)); var value = (SByte)(random.NextSByte() % (upperBound + 1 - lowerBound) + lowerBound); return value; }