function shuffle(collection) {
      var tmp, key, copy = collection.slice(), length = collection.length;
      for (; length > 0;) {
          key = Math.floor(optionAPI('random')() * length);
          // swap
          tmp = copy[--length];
          copy[length] = copy[key];
          copy[key] = tmp;
      }
      return copy;
  }
Returns shuffled collection of elements

@param collection
@returns {T[]}