I'm not sure how a WAV/MP3 shield interacts with the software/sketch...
"Mixing" is simply done by addition (in digital or analog). Digitally, you just add the samples from each file together. If it's a compressed file, you need decode the file and mix the raw PCM data (i.e. 44.100 samples per second).
Like I said, I don't know how the audio shields work, and I don't know if the audio data passes-through the Arduino (where it would be easy to sum/manipulate the audio data) or if the Arduino is just controlling the shield to get the audio data from memory and send it to the ADC (where mixing might be impossible).
You need to scale-down the sample values (i.e. cut them in half, etc.) so that when you sum two 16-bit values together, you don't get a number bigger than 16-bits (assuming a 16-bit ADC).
The catch is, both files need to have the same sample rate (i.e. 44.1 kHz). If not, one or both data streams needs to be re-sampled before mixing.