Skoder Skoder - 1 year ago 71
C# Question

Generate N random and unique numbers within a range

What is an efficient way of generating N unique numbers within a given range using C#? For example, generate 6 unique numbers between 1 and 50. A lazy way would be to simply use

Random.Next()
in a loop and store that number in an array/list, then repeat and check if it already exists or not etc.. Is there a better way to generate a group of random, but unique, numbers?
To add more context, I would like to select N random items from a collection, using their index.

thanks

Answer Source

Take an array of 50 elemwnts: {1, 2, 3, .... 50} Shuffle the array using any of the standard algorithms of randomly shuffling arrays. The first six elements of the modified array is what you are looking for. HTH

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download