There is no reason to use pointers. you don't have to write "append" when a + operator is overloaded. You don't have to use variables to store what functions return.
Actually you don't need to do that string composition thing. You could just write cout << "CR" << rand() << "NQ" << rand()%1000 << endl;