It all depends on your requirements for your program. Here are some potential requirements that might be what your looking for.

- If you do not care if certain elements are accessed multiple times or missed then you do not need to shuffle any data around. You could simply access the data using a random number like this. `arr[rand()%size]`. 
- If your requirement is that you don't want to modify the original array you could make a duplicate array and perform the shuffle on this data. Another way is to create an array of the indexes and shuffle the indexes around. This could look like...
```
int indexes[size];//create index array
for (int i = 0;i<size;i++) indexes[i] = i;//initialize with each possible index
shuffle(indexes,size);//shuffle the indexes
```
then when you access an element you do `arr[indexes[i]]`

- If you want to make code that is more concise and don't care about the implementation of the shuffle algorithm you could use the **std::random_shuffle** algorithm from the **<algorithm>** library. 

If you have another requirement in mind let me know!
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence