protected int GetRandomFromRange(MinMaxPair targetPair, int absoluteMax, int minRemaining = 0) { var maxLength = Math.Min(absoluteMax, targetPair.Max); maxLength = maxLength < int.MaxValue ? maxLength + 1 : maxLength; var minLength = Math.Min(targetPair.Min, maxLength); var length = myRandom.Next(minLength, maxLength); length = absoluteMax - length < minRemaining ? absoluteMax : length; return(length); }
protected int GetRandomFromRange(MinMaxPair targetPair) => GetRandomFromRange(targetPair, targetPair.Max, 0);