@jmathur This is how I would go about what you were trying to achieve. I would actually delete all the existing items in the Peer Review Pairs list, then create new items with the updated pairings. It would also cater for even/odd number of employees.
For this example, I have the following lists based of what you provided.


Full flow below. I'll go into each of the actions.

Recurrence runs quarterly as what you already have.

Next, we want to delete all the existing items in the Peer Reviewer Pairs list.
Get items PRP retrieves all the items from the list.

Apply to each PRP iterates through each item and deletes it so we end up with an empty list.

Next, we want to retrieve the employees so we can match them.
Get items MR retrieves all the items from the Member Reporters list where Include In Reviews is equal to Yes.

Select Employees maps the Employee Name and a random number between 1 and 100. The expression used to generate the random number for each employee is:
rand(1,100)

Order Employees is a Compose that uses a sort expression to sort the employees by Order. This will give us our randomized list of employees. The expression used is:
sort(body('Select_Employees'), 'Order')

Apply to each uses the output from Order Employees and chunks them into groups of 2. This will give us our employee pairings. The expression used is below. The first iteration will contain the first two items, the second iteration will contain the 3rd and 4th items, etc.
chunk(outputs('Order_Employees'), 2)

We then have a Condition to ensure we have two items in the current iteration. If the number of employees is an even number, then the Condition would always be true. But if the number of employees is an odd number then the last iteration would only have one item, so we would just ignore this one. The expression to check the length is:
length(items('Apply_to_each'))

If the length of employees is two (Condition is true) then we use Create item to add the employee pairings. The expressions used are:
//Partner 1 (Title)
first(items('Apply_to_each'))?['Employee']
//Partner 2
last(items('Apply_to_each'))?['Employee']

Finally, we have our Send an email to email the employees a link to the updated list of pairings.

After running the flow, we would end up with a list of randomized employee pairings:

And our email:

----------------------------------------------------------------------
If I've answered your question, please mark the post as Solved.
If you like my response, please consider giving it a Thumbs Up.