Hay un algoritmo muy eficiente para eso.
Código Javascript
:
Ver originalint a[] = {1,2,3,4,5}
int ind;
int aux;
Random r = new Random();
for (int i=4;i>-1;i--){
ind = r.nextInt(i+1);
aux = a[i];
a[i] = a[ind];
a[ind] = aux;
System.out.println(a[i]);
}
Por si no se ve claro (o lo he escrito mal), se trata de elegir una posición aleatoria x entre n valores, intercambiar valores entre x y n, repetir aleatorio con n-1 valores intercambiando x y n-1, y así sucesivamente.