I have a big array of numbers and need to choose X of them randomly without repetition. I have a real random seed provided by an external oracle.
Is there a known fair algorithm to create a pseudo random generator based on the seed?
I read another answer that proposes the usage of modulo operator: Does something like this give an equal chance to each index?
(consider it untested pseudo-code)
uint256[10000] big_list_of_numbers;
seed = very_big_77_digits_number;
uint256[] results;
for(uint256 i =0; i< numbers_to_retrieve; i++) {
uint256 random_index = seed % big_list_of_numbers.length;
results.push(big_list_of_numbers[random_index])
seed = seed - random_index
}