MySQL tiene su propia función RAND()... así te evitarías hacer una doble consulta... y te ahorrarias mucho PHP. Prueba con
Código:
SELECT * FROM tabla ORDER BY RAND() LIMIT 0, 1"
... Si le daz una buscada en el foro de Base de Datos seguro encuentras más info... (de hecho esta cuestión debería de ir allá), aunque no hay mayor ciencia... cabias el limit para modificar el número de resultados a recuperar y listo!.
Saludos!