Eine Möglichkeit wäre, dass du eine weitere String-Variable hinzufügst, in der am Anfang der String in (Parameter der Methode) steht.
Innerhalb der for-Schleife dann eine weitere for-Schleife, die dann das Wort "kopiert", jedoch den Buchstaben an der Stelle rnd nicht dem Wort hinzufügt.
Also:
String in; -> Bleibt das Ursprungswort, dass der Methode übergeben wird
int rnd; -> Zufallszahl für den Buchstaben
String result; -> Das Wort mit der zufälligen Reihenfolge der Buchstaben
String temp; -> temporäre Variable. String wird kopiert jedesmal den String von in und übernimmt alle Buchstaben außer den Zufallssbuchstaben :: String in wird am Ende mit temp überschrieben
Zweite Möglichkeit:
Du speicherst, welche Zufallszahlen du bereits gezogen hast. Wurde per Zufall wieder eine Zahl gezogen, die bereits gezogen wurde, wird einfach solange eine neue Zufallszahl erzeugt, bis du eine Zahl hast, die noch nicht gezogen wurde.
Edit:
Wenn du nicht genau wissen solltest, wie es gemeint ist, kannst du dir den Code hier ansehen. Solltest es jedoch vorher erstmal selbst probieren, bevor du den Code anschaust.

(Methode 2 könnte man besser machen, wenn man statt dem Array eine Liste verwenden würde)
with best regards/Mit freundlichen Grüßen
LordSill