optimization: use rand::distributions::Exp, better align allocations