src/org/kocakosm/pitaya/util/Strings.java
public static String shuffle(String str, Random rnd)
	{
		return new String(XArrays.shuffle(str.toCharArray(), rnd));
	}
public static String shuffle(String str, Random rnd)
	{
		return new String(XArrays.shuffle(str.toCharArray(), rnd));
	}
Randomly permutes the characters from the given {@code String} using
the specified source of randomness. All permutations occur with equal
likelihood assuming that the source of randomness is fair. This
implementation uses the optimized version of the Fisher-Yates shuffle
algorithm (Fisher, Yates, Durstenfeld, Knuth) and thus runs in linear
time.

@param str the {@code String} to be shuffled.
@param rnd the source of randomness to use.

@return the shuffled {@code String}.

@throws NullPointerException if one of the arguments is {@code null}.