turbod era vicino con la sua risposta, stava solo ordinando a caso, quando sembra che tu volessi ordinare per pid, dopo aver ottenuto le righe casuali che volevi insieme a quelle relative a A2 e A3:
(
SELECT *
FROM `mytable`
WHERE
name ='A2' OR
name ='A3'
LIMIT 2
)
UNION
(
SELECT DISTINCT *
FROM `mytable`
WHERE
name !='A2' OR
name !='A3'
ORDER BY RAND( ) LIMIT 2
)
ORDER BY `pid`