Пытаюсь заполнить массив случайными уникальными числами

Никак не могу понять почему не вылетает исключение в том случае,
если разница между randomRangeMin и randomRangeMаx == 1

если разница больше - все ок


Код :
  1. #include <iostream>
  2. #include <iterator>
  3. #include <algorithm>
  4. #include <vector>
  5.  
  6. int main() {
  7.  
  8.     std::vector<int> array;
  9.     auto randomRangeMin = 1;
  10.     auto randomRangeMax = 2;
  11.     auto randomRange = randomRangeMax - randomRangeMin;
  12.  
  13.     try {
  14.     std::generate_n(
  15.          std::back_inserter(array)
  16.        , 10
  17.        , [&](){
  18.              int tryCount = 0;
  19.              int rnd = 0;
  20.              while (
  21.                      (rnd = std::rand()%randomRange + randomRangeMin) > randomRangeMin // fake condition for assignment
  22.                   && array.end() != std::find(array.begin(), array.end(), rnd)
  23.              ) {
  24.                  if (tryCount >= randomRange ) {
  25.                      throw std::logic_error("cant generate unique element for array");
  26.                  }
  27.                  ++tryCount;
  28.              }
  29.              return rnd;
  30.          }
  31.     );
  32.     } catch ( const std::exception & err ) {
  33.         std::cout << "Error: " << err.what() << std::endl;
  34.     }
  35.  
  36.     std::copy(
  37.           array.begin()
  38.         , array.end()
  39.         , std::ostream_iterator<int>(std::cout, " ")
  40.     );
  41.  
  42.     return EXIT_SUCCESS;
  43. }

туплю под вечер наверно
результат работы:
1 1 1 1 1 1 1 1 1 1