How can we formally define a Pseudo-Random Shuffle function?
A PRP (pseudorandom permutation) can be mapped onto the index of each element in vector $\mathbf{v}$ to generate a new index for that element in the shuffled array.

As long as the PRP is secure, the shuffle should be indistinguishable from random. Theoretically, this works if the PRP's input/output is the same size as the number of elements in the array. But in the real world, a PRP construction that can vary it's input/output size for various lengths doesn't exist.

AES-256 could be used as the PRP if there were $2^{256}$ elements in the array. Any stream cipher could be used as long as the size of the vector was a power of $2$. In the real world, there are also memory issues as you have to store values somewhere as you shuffle them. Fisher-Yates solves both these issues by using a PRNG to choose elements to exchange.

That's just my idea of a way to define a pseudorandom shuffle. Using a PRP should make the proof easy. Here's a paper that defines a pseudorandom shuffle in a different way: "The Strength of Weak Randomization: EasilyDeployable, Efficiently Searchable Encryptionwith Minimal Leakage"