code: function random (seed) {
    /**
     * Creates a subgenerator from the current one
     *
     * @param {string} key Key of the subgenerator
     * @param  {...number} params Parameters affecting the subgenerator's seed
     */
  
    function subgen (key, ...params) {
      return random(createSeed([...seed, keygen(key), ...params], seed.length))
    }
  
    /**
     * Retrieves a value from the random generator
     *
     * **Warning:** keys are cached indefinitely, keep them constant
     *
     * @param {string} key Key of the random value
     * @param  {...number} params Parameters affecting the value
     */
  
    function value (key, ...params) {
      return murmur([...seed, keygen(key), ...params])
    }
  
    return { seed, subgen, value, util }
  }
docs: Creates a deterministic random generator
  
  @param {...number} seed Raw seed of the random generator