I feel all teambuilder needs is the OPTION to queue up as only a role (no champ), or multiple roles (So I can select, Bot lane Support or Top Lane Fighter or Top Lane Assassin lets' say, and the client tells me what I've been put into when I get to a team).
Then, when you get to a team and are told what role you are (if you picked multiple), you see what your allies' champs are, choose your champion and the team decides if they want to have you or not.
That's for blind pick. It works for Ranked & Normal Draft in that you can just go to a Ban//Pick phase as soon as you get a team together.
However, because in Ranked Riot doesn't want people (especially at higher elos) to be able to 'cherrypick' their allies, I guess you would have to have an interface where, just before you queue up, you select what roles (and the # of them) you're okay with having on your team.
So, I could select "Top Lane: Anything, Top Lane: Anything, Mid Lane: Anything, Bottom Lane: Support, Jungle: Anything, Jungle:Anything" (+ Bottom Lane: Marksman, which is my role) and then queue up.
And when my team was selected, the client would pop up and say "Are you okay with "Bottom Lane: Support, Bottom Lane: Marksman, Jungle: Fighter, Jungle: Fighter, Mid Lane: Assassin.
And I would either choose No, and get put back in queue, or Yes, and if everyone chooses Yes your team gets put together (and hopefully has some time to talk about team comps and such), and then moves into queueing for champ select.