filter(category, sortOptions) {
    if (!this.isEnabled) {
      return;
    }

    if (!category || (category && category.length === 0)) {
      category = Shuffle.ALL_ITEMS; // eslint-disable-line no-param-reassign
    }

    this._filter(category);

    // Shrink each hidden item
    this._shrink();

    // How many visible elements?
    this._updateItemCount();

    // Update transforms on visible elements so they will animate to their new positions.
    this.sort(sortOptions);
  }
The magic. This is what makes the plugin 'shuffle'
@param {string|string[]|function(Element):boolean} [category] Category to filter by.
    Can be a function, string, or array of strings.
@param {SortOptions} [sortOptions] A sort object which can sort the visible set