$carpeta = "lol/"; //Directorio donde se va a guardar.
$rand = mt_rand(1000,9000); //Generamos un numero aleatorio del 1000 al 9000
$nom = $rand.$carpeta.$_FILES['subir']['name'];
$nombre = (file_exists($_FILES['subir']['name'])) ? ''.$nom.'' : ''.$_FILES['subir']['name'].''; //Comprobamos si el archivo existe
Eso hace que cada vez que subas un archivo, se cree una carpeta, con lo cual con el tiempo podremos llegar a tener 9000 carpetas creadas y que incluso no se suban los archivos porque ya existe otro con otro nombre.
Sería así: 3924lol/casa.jpg - 1938lol/coche.jpg - 2534lol/perro.jpg (es un error y una tonteria)
Entiendo que es un error, que querrías haber puesto $carpeta.$rand.$_FILES... para que fuera lol/1938_coche.jpg y todo eso.
Aunque no entiendo la complicación de hacer rands tontamente cuando no es mejor calcular el hash (un identificador único que no se repite) y darle ese nombre?
Además: En el file_exists no has indicado la ruta de la carpeta y además tampoco le has puesto el rand delante.
Lo ideal sería
$carpeta = "lol/"; //Directorio donde se va a guardar.
$nombre = $carpeta.sha1_file($_FILES['subir']['tmp_name']); // Calculamos el HASH SHA1 del archivo subido
Y eso nunca falla

Pd. Cuidado con las Ñ en el nombre de las variables