Applied Epic workflows may need to randomize a set of cards used in training or simulation exercises. Implement a function that produces a uniformly shuffled copy of a deck using the Fisher-Yates algorithm.
For deterministic evaluation, the function receives random_values. During the shuffle, each value supplies the selected swap index for one iteration. The first value is used when i = n - 1, the second when i = n - 2, and so on. Every supplied value must already satisfy 0 <= random_values[k] <= i for its iteration.
The original deck must remain unchanged. Return a new list containing exactly the same cards, each appearing once.
deck, a list of distinct strings, and random_values, a list of integers with length max(0, len(deck) - 1).deck.def shuffle_deck(deck, random_values):