use std algorithms, and non-deprecated shuffle