¿poque no usas shuffle? Esta orden mezcla los datos de una variable.
Código PHP:
<?
$cosas = array("coche","moto","barco","tren","avion");
$mezcla = $cosas;
shuffle($mezcla);
foreach ($cosas as $value) echo "$value ";
echo "<br>";
foreach ($mezcla as $value) echo "$value ";
?>
Prueba esto y observaras como el primer foreach, lista el array en orden y el segundo lo lista mezclado de forma aleatoria, no es necesario que uses dos arrays, tambien puedes mezclar el primero usando shuffle($cosas) y mostrando foreach ($cosas as $value) echo "$value ";.
Espero que sea lo que buscabas, un saludo