Understanding the Fisher-Yates Card Shuffling Algorithm

I've been working on an upcoming modelling practice blog post and I needed (once again) to implement a card-shuffling algorithm. As always, I turned to the trusty Fisher-Yates shuffle to shuffle my hypothetical cards, but in the process of doing so I was struck by the realization that I didn't actually understand what this commonplace algorithm was actually doing, at least in any meaningful sense. So, not content to let sleeping knowledge lie, I dove into learning about this algorithm... Read more >