>This is the perfect solution with an exception. rand() might return the same value for top 10 more than once thus resulting set would be more than ten recs. Sure not a problem just get the first ten recs than.
From my tests, when there is the same value chosen from the RAND() function, we will have less records than 10. :)