Instead of using the RAND() function which I believe is not truly random since using the same seed value results in the same output:
Whereas, CHECKSUM(NEWID()) would work:
and can thus be used to return a random row:
SELECT TOP(1) School.SchoolNameFROM School
ORDER BY CHECKSUM(NEWID());