C++ wrapper around uniform mt19937 SequenceContainer
gen and dist don't need to be pointers.  Just declare them as members, and use the member initializer list in the constructor to initialize them.

std::random_device rd;
std::mt19937 gen;
std::uniform_int_distribution&lt;T&gt; dist;

EasyRandom(T a, T b): gen(rd()), dist(a, b) {
}


In the operator() that returns a vector, you can reserve space for the vector to avoid memory reallocations during the insertions (v.reserve(n)).  While not an issue with ints, if you use emplace_back rather than push_back that can avoid potential extra copies of a value for non-simple types.

The second question is off topic (code not implemented).