If you require a single-elimination tournament with a non-power-of-2 number of entries, random draw to first round including byes is the only way to do it that doesn't require ordering of entrants in some way, and therefore biasing the first round.
If you require entrants to be matched in symmetric opposition, where a game with Team A targeting Team B requires Team B to be targeting Team A in return, you cannot avoid this problem.
However, with Assassin, you don't need symmetric opposition. Asymmetric opposition allows for Team A to Target Team B, without necessarily Team B targeting (either as a requirement or as an allowance) Team A in return.
This can be done in several ways:
cycling or list - a very common management system for such games, Team A targets Team B, who targets Team C, who targets ... who targets Team Z, who targets Team A. When a team is eliminated, the team who was targeting them now takes over their target, with the circle becoming closer (the list becoming shorter) until only two teams are left to target each other.
pooling (1) - like cycling, but in a collective manner, teams are split into pools and may target any team in a specified pool only, with the pools being cyclic. When only one pool has teams remaining, the teams in that pool may target any team, until only one team remains.
pooling (2) - teams are split until pools and may target any team not in the same pool as themselves, but may only eliminate one team from each other pool. Once they do so, they must eliminate a team from their own pool. Once they do, they go back to eliminating a team from each other pool, and so on, until only one team remains.