code: function otuMapArray(data) {
      this.data = data;
      this.len = this.data.length;
      this.data[this.len] = [];
  
      for (var i = 0; i < this.len; i++) {
          this.data[this.len].push(i);
      }
  
      this.reset = function () {
          var _this = this;
          if (!this.data[this.len]) {
              this.data[this.len] = [];
          }
          for (var i = 0; i < this.len; i++) {
              this.data[this.len].push(i);
          }
      };
  
      this.pop = function () {
          var _this = this;
          var index = this.rng(this.data[this.len].length);
          return this.data[this.data[this.len].splice(index, 1)];
      };
  
      this.rng = function (range) {
          var _this = this;
          if (range === 0) this.reset();
          return randy.randInt(range);
      };
  }
docs: cache.prototype.pop = cache.prototype.retrieve;