std::random_shuffle has been deprecated since C++14, and will be removed in C++17. The replacement is std::shuffle. Change all of the remaining uses (outside of libc++) to use std::shuffle.
The rationale for doing this in the standard is here: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190
I'd appreciate some feedback on the changes in ListReducer.h; I matched what was there, but was not 100% sure of the intent.