Hola,
Filosofia KISS: no te compliques. Si no encuentras una consulta MySQL que haga lo que quieres (en este caso necesitarias subconsultas, o vistas, o como quiera que se llamen), haz que ese trabajo te lo haga PHP. Si con esa consulta obtienes las tres primeras, metelas en un array, y haz un shuffle() (
www.php.net/shuffle) con ese array, y coge el primer elemento del array shuffleado.
Saludos.