Для перемешивания элементов массива в случайном порядке, сохраняя исходный порядок элементов, можно использовать алгоритм "Тасование Фишера — Йетса". Этот алгоритм заключается в следующем:
1. Начните с последнего элемента массива и идите в обратном порядке до первого элемента.
2. На каждом шаге выберите случайный индекс от 0 до текущего индекса (включительно).
3. Поменяйте местами текущий элемент с элементом, находящимся по выбранному индексу.
Пример реализации на языке Python:
```python
import random
def shuffle_array(array):
for i in range(len(array)-1, 0, -1):
j = random.randint(0, i)
array[i], array[j] = array[j], array[i]
# Пример использования
my_array = [1, 2, 3, 4, 5]
shuffle_array(my_array)
print(my_array)
```
Чтобы перемешать многомерный массив один раз для каждой копии сайта, и при этом сохранить порядок элементов при каждом обновлении страницы, можно воспользоваться генерацией случайного числа на основе фиксированного "seed" (зерна), например текущего времени или фиксированного числа. Затем использовать это число в качестве семени для генерации случайных чисел при перемешивании массива.
Пример реализации на языке Python:
```python
import random
def shuffle_array(array, seed):
random.seed(seed)
for i in range(len(array)-1, 0, -1):
j = random.randint(0, i)
array[i], array[j] = array[j], array[i]
# Пример использования
my_array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
seed = 12345 # Фиксированное число
shuffle_array(my_array, seed)
print(my_array)
```
При каждом обновлении страницы необходимо передавать одно и то же значение "seed" функции перемешивания, чтобы порядок элементов оставался неизменным. Значение "seed" можно хранить как переменную в коде или передавать через URL-параметры или кукисы при обновлении страницы.