random_deviceは規格通りに実装されてないケースがあるから
 std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());
とかにしておいたほうが無難だよ以下参照
http://peace.2ch.net/test/read.cgi/tech/1433514467/782