randomSeed(analogRead(0));
Did you disable RESET? If not the pin very likely always reads 1023 because of the internal pullup.
Assuming there is enough Flash available, this is a good way to initialize random...
If you want a truly random seed...
http://code.google.com/p/avr-hardware-random-number-generation/