How to implement random presentation of short auditory stimuli?

Hello!
In my experiment, there are 4 different sounds (approx. 100ms
duration) which could be presented randomly to the subject with
inter-sound interval of 2 seconds, and these sounds could be played
for many times during an experiment run
Here is what I have written:

%load the wave files
[lowR, freq, nbits] = wavread('low_right_100ms');
[lowL, freq, nbits] = wavread('low_left_100ms');
[highR, freq, nbits] = wavread('high_right_100ms');
[highL, freq, nbits] = wavread('high_left_100ms');

nrchannels = 2; % Number of channels.
InitializePsychSound;

pahandle_lowR = PsychPortAudio('Open', [], [], [], freq, nrchannels);
pahandle_lowL = PsychPortAudio('Open', [], [], [], freq, nrchannels);
pahandle_highR = PsychPortAudio('Open', [], [], [], freq, nrchannels);
pahandle_highL = PsychPortAudio('Open', [], [], [], freq, nrchannels);

PsychPortAudio('FillBuffer', pahandle_lowR, lowR');
PsychPortAudio('FillBuffer', pahandle_lowL, lowL');
PsychPortAudio('FillBuffer', pahandle_highR, highR');
PsychPortAudio('FillBuffer', pahandle_highL, highL');

%....some codes here...

%inside a loop for different kinds of stimuli
if(mid==-1) % at some certain time point, choose which sound to play
switch event
case 3
PsychPortAudio('Start', pahandle_lowL, 1);
case 4
PsychPortAudio('Start', pahandle_highL, 1);
case 8
PsychPortAudio('Start', pahandle_lowR, 1);
case 9
PsychPortAudio('Start', pahandle_highR, 1);
end
elseif (mid==-2)
% at some other time point definitely after 100ms of the starting
point, stop the corresponding sound
switch event
case 3
PsychPortAudio('Stop', pahandle_lowL);
case 4
PsychPortAudio('Stop', pahandle_highL);
case 8
PsychPortAudio('Stop', pahandle_lowR);
case 9
PsychPortAudio('Stop', pahandle_highR);
end
end

%... close all the handles at the end...

****************************************************
However, with these codes I could only hear the first sound, when the
second sound comes up, Matlab got freezed
Any suggestions for me? Many thanks!