added shuffle.hpp and perf_shuffle.cpp