acabo de revisar y no se puede usar ORDER BY con UNION, por lo tanto te va a convenir hacer 3 consultas separadas:
Código PHP:
$consulta1 = mysql_query("SELECT * FROM FOTOGRAFIAS
WHERE link <> '#' AND VIP=0
ORDER BY RAND() LIMIT 12");
$consulta2 = mysql_query("SELECT * FROM FOTOGRAFIAS
WHERE link <> '#' AND VIP=1
ORDER BY RAND() LIMIT 12");
$consulta3 = mysql_query("SELECT * FROM FOTOGRAFIAS
WHERE link <> '#' AND VIP=2
ORDER BY RAND() LIMIT 12");