Hallo Daniel,
habe diese Antwort übersehen, daher kommt meine Antwort so spät.
While-Schleifen um einfach nur hoch oder runter zu zählen und "--" inline mag ich nicht besonders, ...
ich habe irgendwo (Quelle leider nicht gemerkt) mal gelesen, das in den meisten Sprachen while-Schleifen schneller sind, als for-Schleifen. Lässt man den Zähler rückwärts laufen, muss man nur auf "=0" testen, was auch schneller geht, als "<n", da sich hinter Vergleichen fast immer eine Subtraktion mit anschließendem Test auf "=0" (Zero-Flag) oder "<0" (Vorzeichen-Flag, MSB, ...) verbirgt.
int r = random.nextInt(i + 1);
da ich von Java keine Ahnung habe und daher nextInt nicht kenne, kann ich diese Version auch nicht beurteilen.
Gruß, Jürgen