XP elige la foto de perfil inicial con RtlRandomEx y una muestra de reservoir
Windows XP selecciona la imagen de perfil al crear una cuenta usando RtlRandomEx con GetTickCount() como semilla y un algoritmo de reservoir sampling de uno‑paso.

Windows XP elige la foto de perfil inicial de forma totalmente aleatoria, pero no con el método que la mayoría imagina. La función interna que hace la selección es RtlRandomEx, la cual toma el valor actual de GetTickCount() como semilla. En lugar de contar primero todos los archivos del directorio y luego elegir aleatoriamente un índice, el código recorre la lista una sola vez y aplica un algoritmo de reservoir sampling con k = 1.
Cómo funciona
El algoritmo es sencillo: se mantiene un contador de cuántos archivos se han visto y, en cada iteración, se decide con probabilidad 1/n si reemplaza la “ganadora” actual por el archivo actual, donde n es el número de elementos procesados hasta el momento. Así, el último archivo tiene una probabilidad 1/n de ser seleccionado, el penúltimo 1/(n‑1) y así sucesivamente, cumpliendo la distribución uniforme.
El código incluye una protección que detiene el bucle después de 100 archivos para evitar comportamiento anómalo cuando el directorio contiene un número extremo de imágenes.
Por qué se eligió este enfoque
- Eficiencia: Se reduce al mínimo las llamadas al sistema de archivos. En la época de XP, el I/O era el cuello de botella, por lo que un algoritmo de un solo paso era preferible a la solución de dos pasadas.
- Robustez: Si el número de archivos cambia mientras el proceso se ejecuta, el algoritmo sigue funcionando sin requerir un recuento previo.
- Simplicidad: El caso de k = 1 de reservoir sampling se implementa con muy pocos estados, lo que facilita la revisión y el mantenimiento.
Referencias
- El algoritmo de reservoir sampling se describe en detalle en la entrada de Wikipedia sobre el tema Reservoir sampling.
- El hilo original en Hacker News donde se discutió el tema está disponible en news.ycombinator.com/item?id=49640646.
Conocer el mecanismo exacto no cambia la experiencia del usuario, pero aclara una curiosidad que había circulado durante años. Para los administradores que gestionan entornos con Windows XP, la información es útil al planificar la limpieza del directorio de imágenes o al diagnosticar comportamientos inesperados en la creación de cuentas.


