# src/Util/generateRandomUint32.js

    /* global crypto */

    export function generateRandomUint32 () {
      if (typeof crypto !== 'undefined' && crypto.getRandomValue != null) {
        // browser
        let arr = new Uint32Array(1)
        crypto.getRandomValues(arr)
        return arr[0]
      } else if (typeof crypto !== 'undefined' && crypto.randomBytes != null) {
        // node
        let buf = crypto.randomBytes(4)
        return new Uint32Array(buf.buffer)[0]
      } else {
        return Math.ceil(Math.random() * 0xFFFFFFFF)
      }
    }