Перемешивает случайные числа без повторений в Javascript / PHP

Я искал некоторые ответы здесь, но это не то, что мне было нужно, или я просто не знаю, как их применить.

Я не запустил никаких кодов, и я только думаю о том, как это сделать, и я понятия не имею, как это сделать. Мне нужна ваша помощь, ребята.

Давайте предположим, что у меня есть массив, который состоит из этих значений ниже

[1,2,3,4,5,6,7,8,9]

И мне нужно перетасовать его, не повторяя позиции каждого числапоследний результат, так что, вероятно, хотелось бы

[5,3,9,6,2,8,1,4,7]

если я снова тасую это

[4,7,2,1,8,3,6,9,5]

И так далее.

Ну, я не знаю, есть ли какое-либо отношение к этому, но, скорее, не использоватьRand () хотя. Любое решение для этого материала?