I would recommend a few things:
1a. The strongest assets should find their way to the weakest teams. The 3 vacant teams probably have 2-6 high-end players and your league should obviously look to get those onto the weakest teams in your league.
1b. One way about this is to have a lottery between the bottom 2/3/4 teams, something like that to see who gets pick slot #1.
1c. Another way is to have a lottery... and the winning team gets to CHOOSE their pick slot, they may prefer to draft 25th/28... IF you are having a "snake" draft.
1d. Another way is to just have last year's last place team pick 1st... and last year's first place team pick last (28/28). That said, in a snake draft, sometimes there's big advantage of having two picks in a row.
2. If your league is "tight" from top-to-bottom... a SNAKE draft is probably pretty fair.
2b. If your league has a pretty major gap from top-to-bottom... you may want to do NHL-style, round 1: 1(worst)-28(best), then round2: 1(worst)-28(best).
Those are the ways to set the order.
I personally prefer a draft with "no trading" and "NO trade discussion".
All teams simply should make their picks on what they feel is best asset.
Open trading up after all teams have their players.
Me personally - try to make your bottom teams stronger.
If the "worst" team by standings last year is your league's REAL worst team, let them draft first in every round.
If the team finishing last in standings did a "tank job" or is stronger than the 2nd/3rd last teams... do a lottery for top 2 or top 3 picks.
Round 2-on you can use worst-to-best.
My 2 cents.