When orphan transactions are evicted form the MapOrphanTransactions pool they are chosen based on their transaction id. https://github.com/bitcoin/bitcoin/blob/378fdfabbae8f4a6e058151d3750ff27f310b4fc/src/net_processing.cpp#L785-L791
However transaction ids can be easily forged (e.g: resigning the transaction until it falls under a certain threshold), what will make the distribution of the ids in the pool not uniform and therefore the orphan selection will be biased. Such a bias makes forged orphans harder to be "randomly" picked. Picking the orphan to be evicted at random based on its position in the MapOrphanTransactions pool seems a better solution.
This issue is related to #14897, and solving it will also help prevent inferring techniques such as TxProbe, which takes advantage of the current orphan eviction mechanism.