Wie kann man den Inhalt eines Arrays mischen?

Dies ist mit Hilfe eines Pseudo-Zufallswertes und einer Hilfsvariablen einfach zu realisieren.

Im Beispiel wird eine Methode deklariert, die ein Array als Parameter übernimmt und dies in vermischter Form wieder zurück gibt. Aufgerufen wird sie direkt in der main-Methode.
In arrayMix() werden zunächst zwei lokale int-Variablen deklariert, von denen eine einen Pseudo-Zufallswert speichert. Er wird durch die Methode nextInt() erzeugt, die zur Klasse java.util.Random gehört. In einer Schleife, die das gesamte Array durchläuft wird dieser Wert bei jedem Durchlauf erneut gebildet. Er besteht aus einem positiven ganzzahligen Wert zwischen 0 und der Array-Länge - 1. Somit besteht der gelieferte Wert aus einem im Array vorhandenen Index.
Der Wert des dem Schleifendurchlauf entsprechenden Array-Eintrags wird in der zweiten Variablen zwischengespeichert und der Wert des zufällig indizierten Eintrags an dessen Stelle gesetzt. Die Zufallsposition wiederum erhält den zwischengespeicherten Wert.

import java.util.Random;

public class Array_mischen {

    private static int[] arrayMix(int[] zahlen) {
        int tmp;
        int rand;
        Random r = new Random();
        for (int i = 0; i < zahlen.length; i++) {
            rand = r.nextInt(zahlen.length);
            tmp = zahlen[i];
            zahlen[i] = zahlen[rand];
            zahlen[rand] = tmp;
        }
        return zahlen;
    }

    public static void main(String[] args) {
        int[] zahlen = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        zahlen = arrayMix(zahlen);
        for (int i : zahlen)
            System.out.println(i);
    }
}