The standard shuffle algorithm is called the Fisher-Yates shuffle (or less frequently, Knuth shuffle). I coded up a demo. The demo relies on a program-defined class that can generate reproducible pseudo-random numbers.
The calling code looks like:
let v = vecRange(8); // creates [0, 1, 2, .. 7] shuffle(v, 1); // 1 is a seed value for randomness // values in v now in different order
The whole idea here is that when training a neural network using back-propagation (also called stochastic gradient descent), it’s critically important that you visit the training items in a different, random order, on each pass (“epoch”).
One of the very first jigsaw puzzles made was a map of Europe (1766). I did a Disney villainesses puzzle over Christmas – it was surprisingly difficult. Clever face makeup for Halloween. I like jigsaw puzzles that feature historical topics, such as this one of the famous Confederate general Robert E. Lee from the American Civil War.