static Random r = new Random();
public static int Randfunc(int start, int end)
{
List<int> numbers = new List<int>();
int n = r.Next(start, end);
return n;
}
Asked
Active
Viewed 485 times
1

Daniyal
- 31
- 5
-
2You do nothing to keep track of the numbers you already generated, at least not in this code. – rene Dec 12 '17 at 11:12
-
You want to avoid repeating last number twice or store each number once? – FCin Dec 12 '17 at 11:13
-
1Why would it be prohibited to generate the same number multiple times randomly? It might also give you 1, 1, 1, 1, 1, 1, 1. – Peit Dec 12 '17 at 11:14
-
4Possible duplicate of [Generating random, unique values C#](https://stackoverflow.com/questions/14473321/generating-random-unique-values-c-sharp) – rene Dec 12 '17 at 11:14
-
3Yeah, if you ban repeating numbers, then it's not random any more. – Dec 12 '17 at 11:15
-
4Sounds like you need a [shuffled list](https://stackoverflow.com/questions/273313/randomize-a-listt) instead. – Sinatr Dec 12 '17 at 11:21
1 Answers
-1
Try something like that;
var start = 0;//Min range of numbers
var end = 1000;//Max range of numbers
int i = 0;
Random random = new Random();
var numbers = new HashSet<int>();
while(i < 100)//Collect 100 unique numbers
{
var number = random.Next(start, end);
if (!numbers.Contains(number))
{
numbers.Add(number);
i++;
}
}

lucky
- 12,734
- 4
- 24
- 46