[FOLD] Move SFINAE inside the template
[FOLD] Remove initialize, simplify
[FOLD] Use std::random_device instead of platform-specific code