SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
Ако приемем correct е някакъв вид int. В противен случай може да се наложи да промените DESC към ASC .
Можете да 'разбъркате' 5-те резултата, като използвате още един ORDER BY RAND() така:
SELECT * FROM (
SELECT *
FROM `choises`
WHERE questionid = :qid
ORDER BY correct DESC, RAND()
LIMIT 5
) as t
ORDER BY RAND()