As Wes says, look at the source.
I've just opened it up in dotPeek and it looks like this, although I think you'd need to study the whole class for context.
public virtual int Next(int minValue, int maxValue)
{
if (minValue > maxValue)
{
throw new ArgumentOutOfRangeException("minValue", Environment.GetResourceString("Argument_MinMaxValue", (object) "minValue", (object) "maxValue"));
}
else
{
long num = (long) maxValue - (long) minValue;
if (num <= (long) int.MaxValue)
return (int) (this.Sample() * (double) num) + minValue;
else
return (int) ((long) (this.GetSampleForLargeRange() * (double) num) + (long) minValue);
}
}