Пятьдесят случайных значений укладываются в 30-битный вектор; затем по числу поднятых битов оценивается количество уникальных значений.