Complete shuffling of lists with true random or pseudo random sequences.
Multiple external true random sources can be accessed to shuffle the list.
In addition to the shuffle function, there are also random cyclic permutation functions, and the derangement function.
Installation can be done through pip. You must have python version >= 3.8
pip install complete-shuffle
The statement to import the package:
from complete_shuffle_package import *
Example:
>>> from gmpy2 import bit_mask as gmpy2_bit_mask
>>> prng_period = calculate_number_of_shuffles_required(12, 'prng_period')
>>> seed = 170141183460469231731687303715884105727 & gmpy2_bit_mask((prng_period - 1).bit_length())
#The entropy of the seed must not be less than the number of permutations in the list.(Calculate with "calculate_number_of_shuffles_required" function)
>>> sequence_list = list(range(12))
>>> pr_complete_shuffle(sequence_list, seed)
>>> sequence_list
[6, 0, 9, 11, 2, 1, 7, 5, 3, 10, 4, 8]
>>> sequence_list = list(range(12))
>>> pr_complete_cyclic_permutation(sequence_list, seed)
>>> sequence_list
[6, 11, 0, 9, 2, 1, 7, 5, 3, 10, 4, 8]
>>> sequence_list = list(range(12))
>>> pr_complete_derangement(sequence_list, seed)
>>> sequence_list
[6, 0, 9, 11, 2, 1, 7, 5, 3, 10, 4, 8]