Если вы хотите написать свою собственную функцию, просто возьмите два случайных индекса и поменяйте местами их значения.Поместите это в цикл и делайте это столько раз, сколько считаете необходимым, чтобы массив был хорошо перетасован (я бы сказал, число раз, равное числу элементов в массиве, в два раза больше).
In psudo-код (так как вы не указали язык)
NUMBER_OF_SHUFFLES = 2;
for(ix = 0; ix < NUMBER_OF_SHUFFLES * myArray.length; ix++)
index1 = random(myArray.length)
index2 = random(myArray.length)
temp = index1
myArray[index1] = myArray[index2]
myArray[index2] = temp
Есть и более сложные способы сделать это.Проверьте это обсуждение: Эффективный способ рандомизации массива - Shuffle code