# Question

Formatted question description: https://leetcode.ca/all/384.html

 384	Shuffle an Array

Shuffle a set of numbers without duplicates.

Example:

// Init an array with set 1, 2, and 3.
int[] nums = {1,2,3};
Solution solution = new Solution(nums);

// Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally likely to be returned.
solution.shuffle();

// Resets the array back to its original configuration [1,2,3].
solution.reset();

// Returns the random shuffling of array [1,2,3].
solution.shuffle();



# Algorithm

Traverse each position of the array, randomly generate a coordinate position each time, and then exchange the number of the current traverse position and the randomly generated coordinate position.

If the array has n numbers, then we also randomly exchange n sets of positions, thus achieving the purpose of shuffling.

It should be noted here that i + rand()% (res.size()-i) cannot be written as rand()% res.size().

Java