It doesn't ... sound... like you actually need to "join" files together and produce another wav file. Instead it ...sounds... like you want to play these files in the different order.
If playback (in an arbitrary order) is the only task you need to do, then you could use "openal" package that uses openal library. Pretty cross-platform solution (if that matters).
The "joining" is achieved by feeding the sound-buffer by a proper wav file.
There's a very basic example given at openal package, that reads "uncompressed" wav file and plays it. See fpc/packages/openal/examples/wavopenal.pas
At the procedure alPlay (at the example file) you'll see that a wave buffer is being read from .wav file and then pushed to the sounds buffer (by calling alBufferData and alSourceQueueBuffer).
So that's the place you'd like to change. Once one file is read completely, you'd need to start the next file and keep feeding the buffer from it... and so on...
...sounds... easy, right?