(Na ezt a postot összevissza szerkesztgettem, de most már jó;)
szerk: Nem mégsem jó, de most már itt hagyom hátha valaki ki tudja dolgozni a forradalmi ötletet helyesen... :)
Nagyon unatkozom, úgyhogy előállok még egy megoldással, ami kicsit más :) :
Két véletlen számot generálunk csak, azonban olyan eloszlásban, ami megfelel a feladat követelményeinek. Tfh. az eredeti megoldásban 1-től n-ig generált 3db. véletlen egész számból választjuk ki min-t és max-ot. Ekkor ehelyett:
1. generáljunk véletlen egész számot 1 és (n+1)*n között
2. a fent generált számhoz keressük meg a legközelebbi négyzetszámot amit jelöljünk k-val
3. d := sqrt(k)-1
4. a := véletlenszám 1 és n-d között ([1;n-d] zárt.int.)
5. b := a+d
Ekkor "a"(minimum) és "b"(maximum) eloszlása tökéletesen olyan mintha azt 3 számból válogattuk volna! :)