This creates an unsorted list of numbers in a range, randomized them, and then iterates through them.
int count = 5000;
int[] randomNumbers = new int[count];
for(int i = 1; i <= count; i++)
{
randomNumbers[i] = i;
}
randomNumbers = randomNumbers.OrderBy(a => (new Random()).Next());
foreach(int randomNumber in randomNumbers)
{
//use randomNumber
}