random() {
        let p = this._next++;
        if (p >= this._cache.length) {
            this._cache.push(Math.random());
        }
        return this._cache[p];
    }
@returns {!number} A random number uniformly sampled from [0, 1).