Yes, the following code gives me what I want if I define subsets:
<picture accept_pics_white1>
/ items = accept_pics_white1
/select=noreplace
</picture>
<picture accept_pics_black1>
/ items = accept_pics_black1
/select=noreplace
</picture>
<picture reject_pics_white1>
/ items = reject_pics_white1
/select=noreplace
</picture>
<picture reject_pics_black1>
/ items = reject_pics_black1
/select=noreplace
</picture>
<picture white_pics_accept1>
/ items = white_pics_accept1
/ select = current(accept_pics_white1)
</picture>
<picture black_pics_accept1>
/ items = black_pics_accept1
/ select = current(accept_pics_black1)
</picture>
<picture white_pics_reject1>
/ items = white_pics_reject1
/ select = current(reject_pics_white1)
</picture>
<picture black_pics_reject1>
/ items = black_pics_reject1
/ select = current(reject_pics_black1)
</picture>
<item accept_pics_white1>
</item>
<item accept_pics_black1>
</item>
<item reject_pics_white1>
</item>
<item reject_pics_black1>
</item>
<item white_pics_accept1>
</item>
<item black_pics_accept1>
</item>
<item white_pics_reject1>
</item>
<item black_pics_reject1>
</item>
<counter setup_accept_pics_white1>
/ items = ("App14_1Template.jpg", "App14_2Template.jpg", "App14_3Template.jpg", "App14_4Template.jpg",
"App14_5Template.jpg", "App14_6Template.jpg", "App14_7Template.jpg", "App14_8Template.jpg",
"App14_9Template.jpg", "App14_10Template.jpg")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_accept_pics_black1>
/ items = ("App14_10Template.jpg", "App14_11Template.jpg", "App14_12Template.jpg",
"App14_13Template.jpg", "App14_14Template.jpg", "App14_15Template.jpg", "App14_16Template.jpg",
"App14_17Template.jpg", "App14_18Template.jpg", "App14_19Template.jpg", "App14_20Template.jpg")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_reject_pics_white1>
/ items = ("App13_1Template.jpg", "App13_2Template.jpg", "App13_3Template.jpg", "App13_4Template.jpg",
"App13_5Template.jpg", "App13_6Template.jpg", "App13_7Template.jpg", "App13_8Template.jpg",
"App13_9Template.jpg", "App13_10Template.jpg")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_reject_pics_black1>
/ items = ("App13_11Template.jpg", "App13_12Template.jpg",
"App13_13Template.jpg", "App13_14Template.jpg", "App13_15Template.jpg", "App13_16Template.jpg",
"App13_17Template.jpg", "App13_18Template.jpg", "App13_19Template.jpg", "App13_20Template.jpg")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_white_pics_accept1>
/ items = ("W1S.bmp", "W2S.bmp", "W3S.bmp", "W4S.bmp",
"W5S.bmp", "W6S.bmp", "W8S.bmp", "W9S.bmp",
"W11S.bmp", "W13S.bmp")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_white_pics_reject1>
/ items = ("W19S.bmp", "W20S.bmp",
"W21S.bmp", "W23S.bmp", "W25S.bmp", "W26S.bmp",
"W28S.bmp", "W30S.bmp", "W31S.bmp", "W37S.bmp")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_black_pics_accept1>
/ items = ("B1S.bmp", "B2S.bmp", "B3S.bmp", "B4S.bmp",
"B5S.bmp", "B6S.bmp", "B8S.bmp", "B9S.bmp",
"B10S.bmp", "B12S.bmp")
/ select = noreplace
/ selectionrate = trial
</counter>
<counter setup_black_pics_reject1>
/ items = ("B984S.bmp", "B985S.bmp",
"B986S.bmp", "B987S.bmp", "B988S.bmp", "B990S.bmp",
"B991S.bmp", "B993S.bmp", "B994S.bmp", "B997S.bmp")
/ select = noreplace
/ selectionrate = trial
</counter>
<trial setup_pairingsaw>
/ ontrialbegin = [item.accept_pics_white1.item=counter.setup_accept_pics_white1.selectedvalue]
/ ontrialbegin = [item.white_pics_accept1.item=counter.setup_white_pics_accept1.selectedvalue]
/ trialduration = 0
/ recorddata = false
</trial>
<trial setup_pairingsab>
/ ontrialbegin = [item.accept_pics_black1.item=counter.setup_accept_pics_black1.selectedvalue]
/ ontrialbegin = [item.black_pics_accept1.item=counter.setup_black_pics_accept1.selectedvalue]
/ trialduration = 0
/ recorddata = false
</trial>
<trial setup_pairingsrw>
/ ontrialbegin = [item.reject_pics_white1.item=counter.setup_reject_pics_white1.selectedvalue]
/ ontrialbegin = [item.white_pics_reject1.item=counter.setup_white_pics_reject1.selectedvalue]
/ trialduration = 0
/ recorddata = false
</trial>
<trial setup_pairingsrb>
/ ontrialbegin = [item.reject_pics_black1.item=counter.setup_reject_pics_black1.selectedvalue]
/ ontrialbegin = [item.black_pics_reject1.item=counter.setup_black_pics_reject1.selectedvalue]
/ trialduration = 0
/ recorddata = false
</trial>
<trial orientaw>
/ stimulusframes = [1=accept_pics_white1,white_pics_accept1]
/timeout=100
</trial>
<trial orientab>
/ stimulusframes = [1=accept_pics_black1,black_pics_accept1]
/timeout=100
</trial>
<trial orientrw>
/ stimulusframes = [1=reject_pics_white1,white_pics_reject1]
/timeout=100
</trial>
<trial orientrb>
/ stimulusframes = [1=reject_pics_black1,black_pics_reject1]
/timeout=100
</trial>
<trial testaw>
/ stimulusframes = [1=accept_pics_white1,AcceptButton,RejectButton,white_pics_accept1]
/ correctresponse = (AcceptButton)
/ validresponse = (AcceptButton,RejectButton)
/timeout=100
</trial>
<trial testab>
/ stimulusframes = [1=accept_pics_black1,AcceptButton,RejectButton,black_pics_accept1]
/ correctresponse = (AcceptButton)
/ validresponse = (AcceptButton,RejectButton)
/timeout=100
</trial>
<trial testrw>
/ stimulusframes = [1=reject_pics_white1,AcceptButton,RejectButton,white_pics_reject1]
/ correctresponse = (RejectButton)
/ validresponse = (AcceptButton,RejectButton)
/timeout=100
</trial>
<trial testrb>
/ stimulusframes = [1=reject_pics_black1,AcceptButton,RejectButton,black_pics_reject1]
/ correctresponse = (RejectButton)
/ validresponse = (AcceptButton,RejectButton)
/timeout=100
</trial>
<block pairings>
/ trials = [1-40=noreplace(setup_pairingsaw,setup_pairingsab,setup_pairingsrw,setup_pairingsrb)]
</block>
<block orient>
/ trials = [1-40=noreplace(orientaw,orientrw,orientab,orientrb)]
</block>
<block test>
/ trials = [1-40=noreplace(testaw,testrw,testab,testrb)]
</block>
But this still isn't random. I could make more orders (pairing the first 10 White faces with the last 10 acceptance profiles, etc.) and then randomly assign participants to orders, so that each face is equally likely to be paired with any other application, but it is still not fully random. If you don't have any other solution, that will work. But please let me know if I am missing out on something here that could get fully random selection. Thanks for your help.