Если ($max - $min) == ($num - 1), генерировать всё ещё можно, просто решение вырождается в range($min, $max); да че и говорить, всегда когда ($max - $min) < $num*2 выгоднее случайные случаи из range($min, $max) удалять