The @Jeroen's answer is the one you should take, but I wanted to review something in your code anyway, in order to make you learn something!

Instead of using a `List<int>`, you should use an `HashSet<int>`. The `HashSet<>` prohibites multiple identical values. And the `Add` method returns a `bool` that indicates if the element was added to the list, this way you could change this code : 

 public static List<int> GetRandomNumbers(int count)
 {
 List<int> randomNumbers = new List<int>(); 
 
 for (int i=0; i<count; i++) 
 { 
 int number;
 
 do number = random.Next();
 while (randomNumbers.Contains(number));
 
 randomNumbers.Add(number);
 }
 
 return randomNumbers;
 }

to this : 

 public static IEnumerable<int> GetRandomNumbers(int count)
 {
 HashSet<int> randomNumbers = new HashSet<int>();
 
 for (int i = 0; i < count; i++) 
 while (!randomNumbers.Add(random.Next()));

 return randomNumbers.ToList();
 }

Note that I changed the return value from `List<int>` to `IEnumerable<int>`, if you don't plan to add/remove values from your list, you should return `IEnumerable<int>`, if you plan to do it, return `ICollection<int>`. You shouldn't return a `List<int>` because it is an implementation detail and that the `List<>` isn't made to be extensible.