code: function _stringAsciiPRNG(value, m) {
      // Xn+1 = (a * Xn + c) % m
      // 0 < a < m
      // 0 <= c < m
      // 0 <= X0 < m
  
      const charCodes = [...value].map(letter => letter.charCodeAt(0));
      const len = charCodes.length;
  
      const a = (len % (m - 1)) + 1;
      const c = charCodes.reduce((current, next) => current + next) % m;
  
      let random = charCodes[0] % m;
      for (let i = 0; i < len; i++)
          random = ((a * random) + c) % m;
  
      return random;
  }
docs: https://en.wikipedia.org/wiki/Linear_congruential_generator