First of all, Randomize is used with the 'old' Rnd function, which you are not using. The Random class, which you are using, does not need it, so it is not doing anything.

The Random class bases its random numbers on a seed. You can supply the seed yourself, when creating a New Random object, but you are not. Because you are not, the class will use the system time as seed by default (this is a good thing!). So, you should see random results. If you run the program twice, the time will be different each run, and 'generator' should return a different sequence of numbers.

I'm not sure how you're seeing that it's not random, nor what you're doing exactly... Can you explain a bit more?

Finally, the whole Select Case block is redundant. You are doing the same thing in each case, except that you are using a different index to the checkList array (well, I think it's an array, you didn't specify).
So, you can replace the whole select case block with this:
Code:
If (checkList(randomValue - 1) = True) Then
                        'has already been populated
                        track += 1
                    Else
                        checkList(randomValue - 1) = True
                    End If