Yes, it's perfectly possible. Two options:
(1) Pair your items randomly *at the beginning* of the experiment and then proceed as you would normally. See e.g.
https://www.millisecond.com/forums/Topic2623.aspx for an example.
(2) Store the pairs *at runtime* in empty, linked <item> or <list> elements. Sample from those <item>s or <lists> for the repetition. Example:
<values>
/ personitem = 1
/ cvitem = 1
</values>
<expt>
/ blocks = [1=showrandompairs; 2=repeatrandompairs]
</expt>
<block showrandompairs>
/ trials = [1-4=show]
</block>
<block repeatrandompairs>
/ trials = [1-4=repeat]
</block>
<trial show>
/ ontrialbegin = [values.personitem=list.randomperson.nextindex; values.cvitem=list.randomcv.nextindex;
list.repeatperson.appenditem(values.personitem); list.repeatcv.appenditem(values.cvitem); ]
/ stimulusframes = [1=person, cv]
/ validresponse = (57)
</trial>
<trial repeat>
/ ontrialbegin = [values.personitem=list.repeatperson.nextvalue; values.cvitem=list.repeatcv.nextvalue; ]
/ stimulusframes = [1=person, cv]
/ validresponse = (57)
</trial>
<text person>
/ items = personitems
/ select = values.personitem
/ position = (40%, 50%)
</text>
<text cv>
/ items = cvitems
/ select = values.cvitem
/ position = (60%, 50%)
</text>
<item personitems>
/ 1 = "Person A"
/ 2 = "Person B"
/ 3 = "Person C"
/ 4 = "Person D"
</item>
<item cvitems>
/ 1 = "CV 1"
/ 2 = "CV 2"
/ 3 = "CV 3"
/ 4 = "CV 4"
</item>
<list randomperson>
/ poolsize = 4
</list>
<list randomcv>
/ poolsize = 4
</list>
<list repeatperson>
</list>
<list repeatcv>
/ selectionmode = list.repeatperson.currentindex
</list>