public static void Main()
var rr = new RoundRobinCounter(4);
for (int i = 0; i< 1000; i++)
Console.WriteLine("{0} === {1}", i, next);
public class RoundRobinCounter
private int _currentNumber = Int32.MaxValue - 100;
public RoundRobinCounter(int max)
uint nextNumber = unchecked((uint)System.Threading.Interlocked.Increment(ref _currentNumber));
int result = (int) (nextNumber % _max);