JSFiddle - React, Tailwind, and code Playground

JavaScript

var seeder = function(){
 var seed = [];
 return {
  set:function(length){
    if( seed.length > 0 ) return seed;
    for( var i = 0; i < length; i++ ){
        seed.push(Math.random());
    }
    return seed;
  },
  get: function(){
   return seed;
  },
  clear: function(){
   seed = []; 
  }
 };
}

function randomShuffle(ar,seed){
    var numbers = [];0-51
    for( var a = 0, max = ar.length; a < max; a++){
        numbers.push(a);
    }
    var shuffled = [];
    for( var i = 0, len = ar.length; i < len; i++ ){
        var r = parseInt(seed[i] * (len - i));
        shuffled.push(ar[numbers[r]]);
        numbers.splice(r,1);
    }
    return shuffled;
}

var arr = ["a", "b", "c", "d"];
var seed = seeder();
seed.set(arr.length);
console.log(randomShuffle(arr,seed.get()));
console.log(randomShuffle(arr,seed.get()));
console.log(randomShuffle(arr,seed.get()));