Fairly complex system to develop:
How it works today (Just examples for illustration):
Player Queues for Random Dungeon
-- Hi Blizzard, I'm a player and I'm queueing for a random dungeon. Please list my name on your servers.
*Blizzard server lists player*
*Blizzard server decides a random dungeon*
*Blizzard server makes a random group*
var Tank = rand(tanklist)
var Healer = rand(healerlist)
var DPS1 = rand(dpslist)
and so on.
How it will work:
Premium player ask for a member from his battle.net to join his group.
-- Hey Blizzard, I'm a Premium. Please call my friend Fulanus from Random realm, I want you to make a cross server group including me and him.
*blizzard server makes a random group*
*blizzard server calls upon the desired player on the desired realm -- using much of the already existing "you've been called for a group" and "your dungeon is ready" system*
*blizzard server defines the premium player as the group guide*
*blizzard stops searching for random players and let the group guide decide on who'll join*
Looks like a pretty complex system to me.