random.js
function (type, options) {
  var self = this;
  self.type = type;

  if (!RandomGenerator.Type[type]) {
    throw new Error("Unknown random generator type: " + type);
  }

  if (type === RandomGenerator.Type.ALEA) {
    if (!options.seeds) {
      throw new Error("No seeds were provided for Alea PRNG");
    }
    self.alea = Alea.apply(null, options.seeds);
  }
}
function (type, options) {
  var self = this;
  self.type = type;

  if (!RandomGenerator.Type[type]) {
    throw new Error("Unknown random generator type: " + type);
  }

  if (type === RandomGenerator.Type.ALEA) {
    if (!options.seeds) {
      throw new Error("No seeds were provided for Alea PRNG");
    }
    self.alea = Alea.apply(null, options.seeds);
  }
}
`type` is one of `RandomGenerator.Type` as defined below.  options: - seeds: (required, only for RandomGenerator.Type.ALEA) an array whose items will be `toString`ed and used as the seed to the Alea algorithm