-3

I write a simple code and I would like to prevent duplicate random numbers.

What is the simplest way to do it?

 Random rnd = new Random();

        int n1, n2, n3, n4, n5, n6, n7;

        n1 = rnd.Next(1, 37);
        n2 = rnd.Next(1, 37);
        n3 = rnd.Next(1, 37);
        n4 = rnd.Next(1, 37);
        n5 = rnd.Next(1, 37);
        n6 = rnd.Next(1, 37);
        n7 = rnd.Next(1, 7);

        Console.WriteLine("1 Number ({0})", n1);
        Console.WriteLine("2 Number ({0})", n2);
        Console.WriteLine("3 Number ({0})", n3);
        Console.WriteLine("4 Number ({0})", n4);
        Console.WriteLine("5 Number ({0})", n5);
        Console.WriteLine("6 Number ({0})", n6);
        Console.WriteLine("Additionl Number ({0})", n7);
    }
}

}

Ionică Bizău
  • 109,027
  • 88
  • 289
  • 474

1 Answers1

-1

I had the same problem. Use this instead:

private static readonly Random random = new Random();
private static readonly object syncLock = new object();
public int RandomNumber(int min, int max)
{
    lock (syncLock)
    { // synchronize
        return random.Next(min, max);
    }
}

Usage

int randomNumber = RandomNumber(0, 10); // random number between 0 and 10
Ionică Bizău
  • 109,027
  • 88
  • 289
  • 474