Hey, Have a quick question about which is better to get real random values, shuffle or mt_rand. I am trying to shuffle a deck of cards and reading another thread I saw that after a couple of thousand random generations patterns have been observed using rand()... so its better to use mt_rand(). After i wrote a function (copied below) to get real random cards from a 52 deck, Tijnema from the list kindly sent me a piece of code thats simpler/faster/should or would use less processing and does exactly what my function does except it uses shuffle()... Any idea which would be better to constantly generate proper random numbers for a long period of time? ========= My original code with mt_rand() ============ function load_cards($no_of_players) { $i=0; $cards=array(); while($i<1) { if(empty($cards[0])) { $cards[]=mt_rand(1,52); } else { $no_of_cards_already_in_array=count($cards); $cards_to_be_dealt=$no_of_players * 2; $cards_to_be_dealt=$cards_to_be_dealt + 5; if($no_of_cards_already_in_array < $cards_to_be_dealt) { $new_generated_card=mt_rand(1,52); if(!in_array($new_generated_card,$cards)) { $cards[]=$new_generated_card; } }else { // end the loop $i=2; break; // just in case the above does not break outa the loop. } } } return $cards; } ========== Contributed code =================== // only generating 5 numbers here $deck=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52); shuffle($deck); for($i=0; $i<5; $i++) { $card = array_pop($deck); echo $card."<br>"; } ============================================== Any comments and suggestions are also welcome. Thanks! Ryan ------ - The faulty interface lies between the chair and the keyboard. - Creativity is great, but plagiarism is faster! - Smile, everyone loves a moron. :-) --------------------------------- Need a vacation? Get great deals to amazing places on Yahoo! Travel.