My program runs sometimes, but other times it runs infinitely because the random number generator keeps generating the same number again and again.
public static String[] shuffleElements(final String[] elements) {
String[] shuffledArray = new String[elements.length];
Set<Integer> generatedIndices = new HashSet<Integer>();
for(int i=0;i < elements.length; i++) {
int index = -1;
do{
index = r.nextInt(elements.length);
System.out.println(i + ", " + index);
}while(index == i || generatedIndices.contains(index));
generatedIndices.add(index);
assignments[i] = elements[index];
}
return shuffledArray;
}
How do I fix this problem? Is there a better way of doing this?