I'm not sure what the relevance of the code snippets you posted is supposed to be.
The block you included
<block AngrySad>
...
/ trials = [1-128 = noreplace(Female_Black_Angry_l, Female_White_Angry_l, Male_Black_Angry_l, Male_White_Angry_l, Female_Black_Sad_r, Female_White_Sad_r, Male_Black_Sad_r, Male_White_Sad_r)]
...
</block>
does not even run the <trial> you included
<trial Male_Black_Sad_l>
/ pretrialpause = 200
/ stimulustimes=[0=fixation, reminder_left, reminder_right; 300=Male_Black_Sad.l; 500=blank]
/ correctresponse = ("a")
/ errormessage = true(error,400)
/ validresponse = ("a", "l")
</trial>
Male_Black_Sad_l is nowhere to be found in
/ trials = [1-128 = noreplace(Female_Black_Angry_l, Female_White_Angry_l, Male_Black_Angry_l, Male_White_Angry_l, Female_Black_Sad_r, Female_White_Sad_r, Male_Black_Sad_r, Male_White_Sad_r)]
What that /trials attribute will do is run a total of
16 Female_Black_Angry_l trials,
16 Female_White_Angry_l trials,
16 Male_Black_Angry_l trials,
16 Male_White_Angry_l trials,
16 Female_Black_Sad_r trials,
16 Female_White_Sad_r trials,
16 Male_Black_Sad_r trials, and
16 Male_White_Sad_r trials
in random order. How those trials sample from any stimulus elements is an entirely different matter.
Please see
https://www.millisecond.com/forums/FindPost14400.aspx which should hopefully clarify how one can think about *trial* selection vs. stimulus selection.