Cómo elegía Windows XP la imagen inicial de perfil del usuario

Fuentes: What algorithm did Windows XP use to choose your initial user picture?

Windows XP seleccionaba al azar la imagen de perfil del usuario recién creado a partir de los archivos de imagen almacenados en el directorio compartido %ALLUSERSPROFILE%\Application Data\Microsoft\User Account Pictures\Default Pictures. El mecanismo se apoya en la función RtlRandomEx, de la RTL de Windows, cuya semilla inicial es el valor devuelto por GetTickCount() en el momento de crear la cuenta.

Para escoger un archivo el código no recorre la lista dos veces —primero para contar elementos y luego para localizar el elegido—, sino que aplica un algoritmo de selección aleatoria en una sola pasada, un caso particular del muestreo de reservorio con k=1. En pseudocódigo, la rutina incrementa un contador por cada elemento del iterador y reemplaza el ganador actual solo si un generador uniforme entre 1 y el contador devuelve exactamente el valor del contador. De ese modo, cada elemento i tiene una probabilidad de 1/i de convertirse en el definitivo, lo que, desplegando la recursión, garantiza una distribución uniforme al terminar el recorrido.

La elección de este esquema responde a dos motivos prácticos: reduce las llamadas al sistema de archivos —el cuello de botella real— y evita problemas si el número de ficheros cambia mientras se ejecuta el código. Como salvaguarda, el proceso se interrumpe tras examinar 100 imágenes, para impedir tiempos de carga excesivos si alguien añade millones de archivos a esa carpeta.