added Fisher-Yates shuffle to usefl