Der Defaultkonstruktor von QTime ist gleich QTime(0,0,0,0); msec wird wohl auch Null liefern. Damit ist der Startwert für den Zufallszahlengenerator immer derselbe, darum kommt auch immer dasselbe heraus. Ersetze "time.msec()" mal durch "QTime::currentTime().msec()".
qsrand ((unsigned) QTime::currentTime().msec() );
int rand_max = RAND_MAX;
int random = qrand();
double RandomOne = (double)random/(double)rand_max;
liefert mir nun Zufallswerte. Allerdings liegt rand_max bei 32767 aber random geht nur maximal hoch bis ~3000. Damit liegen die Werte von RandomOne nur zwischen 0-~0.1.
Über die Qualität der erzeugten Zufallszahlen kann ich nichts sagen. Die Qt 4.3.4, in der GPL Variante hier unter Windows, benutzt direkt die C-Library Funktionen srand und rand.
Allerdings liegt rand_max bei 32767 aber random geht nur maximal hoch bis ~3000. Damit liegen die Werte von RandomOne nur zwischen 0-~0.1.
Bei mir nicht... der Code macht (bei Stichproben) ganz genau das, was er tun soll... (Werte von 0-32767 bez. 0-1 liefern).
[EDIT]
Auf allen Plattformen (Solaris/Qt4.3.4, Linux/Qt 4.4rc1, Mingw/Qt4.3.4). Uebrigens ist "random" ein schlechter Variabelnname... (siehe "man random").