Usando
UNION ALL
e subconsulta ajudará a obter o resultado esperado. A consulta a seguir ajudará no seu caso:
SELECT Answer FROM (
SELECT * FROM (
SELECT Answer, 1 AS ManualOrder FROM Answers WHERE Correct = 'true' AND QId = 1
UNION ALL
SELECT Answer, RAND() FROM Answers WHERE Correct != 'true' AND QId = 1
) AS Q
ORDER BY ManualOrder DESC LIMIT 3
) W ORDER BY RAND()
Encontre demo no db<>fiddle
Na minha demonstração,
Answer 04
é a resposta correta para o ID da pergunta 1
, no conjunto de resultados, Answer 04
é sempre retornado junto com 2 outras respostas na ordem aleatória.