http://www.depesz.com/index.php/2007/09/16/my-thoughts-on-getting-random-row/ explains alternate approaches than using order by random().
"this is very good way to get truly random records. there is no “preference” for specific rows. the major drawback is speed. or lack of it actually."