added implementation of fisher-yates using slice of interfaces