This may be off topic, but why are min and max macros by default ? It is the problem we face most often when we compile our library on windows.
For those unfamiliar with this issue: if you include Windef.h (directly or indirectly) you get what the platform provides. That file by default defines min and max macros. To prevent that, define NOMINMAX before including the windows header (in the source, or as a command line argument to the compiler). (https://support.microsoft.com/en-us/kb/143208)
Oh! That explains some of the odd-looking code in <random>, since min and max are used as function names to determine the range of an RNG engine.