Fisher-Yates Shuffle
The docs on "use strict" are vague but I'm not entirely sure putting it inside a function makes it apply to the function definition.
var shuffle = function shuffle (array) { seems unnecessarily redundant. I would just use function shuffle (array) {
Use const and let instead of var (unless you're trying to support older browsers)
It doesn't make sense to initialize randomIndex or temporaryValue.
I would write while (currentIndex &gt; beginningIndex) { especially if the indexDecrement could be something other than 1. Actually I would prefer a for loop though its arguable given the way your loop is structured.
I would use destructuring assignment to swap values:

[ array[currentIndex], array[randomIndex] ] = [ array[randomIndex], array[currentIndex] ];

If you use const or let you can move the definition of randomIndex and temporaryValue inside the loop block. 
You return the shuffle function but your IIFE doesn't assign it anywhere. Apart from the fact that this seems unnecessarily complex I wonder if this even works?