randomSeed(analogRead(0));

That function just seeds the random number generator - it doesn't create a random number.

Is there something wrong with your question-mark key?