mersenne_twister_engine - вот сам класс mt19937 (сейчас он уже в std есть, так что не факт что буст используется), вот его конструктор:
mersenne_twister_engine/mersenne_twister_engine, вот что пишут про его единственный параметр:
> value - seed value to use in the initialization of the internal state
Т.е. это зерно для вашего рандом-генератора. Как часто это делается в задачах, не требующих высокого уровня безопасности, зерном берется текущее время.
А вот собственно функция
time. Она принимает один параметр - указатель на time_t, и возвращает также time_t. В любом случае она вернет текущее время, если же вы в кач. первого параметра передадите ненулевой указатель, то она еще и по нему запишет текущее время. В вашем примере передается NULL, т.к. используется возвращаемое значение.
А вот это -
uniform_int_distribution - класс равномерного распределения случайной величины. Скорее всего дальше по коду он используется вместе с рандом-генератором для получения значений случайной величины, удовлетворяющих этому равномерному распределению.