Simply: You cant, directly.
System.Random can generate same number over and over again. If you still want to get 'unique random' numbers, you need to store generated numbers in a list, then check if newly generated number is in list.
using System;
using System.Collections.Generic;
class Program
{
public static int Main(string[] args)
{
var numbers = new List<int>();
Random rnd = new Random();
for (int n = 0; n < 20; n++)
{
int num = rnd.Next(1000, 9999);
for (int i = 0; i < numbers.Count; i++)
{
if (num == numbers[i])
{
while (num == numbers[i])
num = rnd.Next(1000, 9999);
i = -1;
}
}
numbers.Add(num);
}
// Uncomment if you want sorting
// numbers.Sort();
// Print numbers so we can check that every entry is unique
for (int i = 0; i < numbers.Count; i++)
Console.WriteLine("Id: {0}", numbers[i]);
return 0;
}
}
This code will try to generate random numbers if same number is generated before, then restart to check number with list. Pretty inefficient and does not works quite well with 'edge' numbers. (For example you try to generate a 20 entry list with only 19 random numbers)