Tengo que ordenar de forma aleatoria el resultado de una lista de 50 registros, de esos 50 registros hay 3 personas que aparecen mas de 3 veces consecutivamente, necesito separarlos con la mayor cantidad de registros intermedios es decir:

JUAN P
JUAN P
JUAN P

MARIO J
IGNACIO R
LUIS V
JOSE F
JUAN H
JOSE R

Deberia quedar asi:

JUAN P
MARIO J
IGNACIO R
LUIS V
JUAN P
JOSE F
JUAN H
JOSE R
JUAN P

Podrian ayudarme a saber como hacerlo? datos en MySQL, muestreo en PHP + Javascript...

Gracias de antemano