Si tu as un nombre limité et fixe de notes par exemple les entiers de 0 à 10 tu peut faire :
SELECT *
FROM
(
select * from annonce
union
select * from annonce where note > 1
union
select * from annonce where note > 2
union
select * from annonce where note > 3
union
select * from annonce where note > 4
union
select * from annonce where note > 5
union
select * from annonce where note > 6
union
select * from annonce where note > 7
union
select * from annonce where note > 8
union
select * from annonce where note > 9
)
ORDER BY RAND()
LIMIT 1;
Fastudieux n’est ce pas ? En plus ce n’est pas très souple, mais je connais que très mal l’utilisation du random dans les requêtes. J’ai une autre solution nettement plus souple, mais il faudrait que tu ai accès à des fonctions analytiques donc à PostgreSQL (c’est aussi possible sous MySQL mais sous forme d’extension).