SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
Supondo
correct
é algum tipo de int. Caso contrário, pode ser necessário alterar DESC
para ASC
. Você pode 'embaralhar' os 5 resultados usando mais um
ORDER BY RAND()
assim:SELECT * FROM (
SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
) as t
ORDER BY RAND()