public static class RandomUtils
public static int[] generateUniqueNumbers(int minValue, int maxValue)
throw new ArgumentException("Minimal value cannot be bigger than maximal value.");
int[] values = new int[maxValue - minValue + 1];
for (int i = 0; i < values.Length; ++i)
values[i] = minValue + i;
Random random = new Random();
for (int i = 0; i < values.Length; ++i)
int index = random.Next(values.Length);
values[i] = values[index];
public static void Main()
for(int i = 0; i < ranges.Length; i += 2)
int minValue = ranges[i + 0];
int maxValue = ranges[i + 1];
int[] values = RandomUtils.generateUniqueNumbers(minValue, maxValue);
Console.WriteLine("Random values from " + minValue + " to " + maxValue + ": ");
foreach (int entry in values)
Console.Write(entry + " ");