Algoritmos de embaralhamento são usados para reorganizar os elementos de um array em uma ordem aleatória.
Os algoritmos de embaralhamento são implementados como funções que recebem um array de elementos genéricos como parâmetro, e retornam o array embaralhado. As funções seguem a seguinte assinatura:
type ShufflingFunction<T> = (array: T[]) => T[];