While it is common practice to seed the internal random generator this way, it doesn't really do a very good job. In practice, the analogRead(0) on an unconnected pin doesn't produce too many possible values, and even theoretically will only produce up to 10 bit (in practice much less), when the seed function is designed to use a 32-bit integer.

Here are some examples of what the randomSeed(analogRead(0)) used on an example Arduino;

// The more normal randomSeed(analogRead(0)) produces far less random seed

// values as showm in the following 25 examples:

// Seed value = 303

// Seed value = 326

// Seed value = 327

// Seed value = 326

// Seed value = 326

// Seed value = 328

// Seed value = 328

// Seed value = 328

// Seed value = 330

// Seed value = 328

// Seed value = 328

// Seed value = 329

// Seed value = 327

// Seed value = 328

// Seed value = 328

// Seed value = 329

// Seed value = 329

// Seed value = 329

// Seed value = 331

// Seed value = 331

// Seed value = 330

// Seed value = 331

// Seed value = 329

// Seed value = 329

// Seed value = 329

As you can see, in 25 samples, there are only seven different values, which differ by only a couple of low end bits...