added method shuffle()