public function shuffle($in_place = false)
    {
        if ($in_place) {
            shuffle($this->list);

            return $this;
        }

        $shuffled = $this->list;
        shuffle($shuffled);

        return new ItemList($shuffled);
    }