I have multiple cases that are under Math.random but sometimes they repeat. It looks a little unprofessional. Is there a way to always go to another random case?
            Asked
            
        
        
            Active
            
        
            Viewed 183 times
        
    0
            
            
         
    
    
        putvande
        
- 15,068
- 3
- 34
- 50
 
    
    
        user2617514
        
- 25
- 4
- 
                    1random numbers can repeat.. what number range are you looking at – gezzuzz Jul 27 '13 at 22:22
- 
                    Define "cases". Use-cases? Switch-case? `Math.random` is not the best random/pseudo-random generator out there, so if you need more randomness, you're going to have another way to implement it. – BLaZuRE Jul 27 '13 at 22:23
- 
                    possible duplicate of [Generating unique random numbers (integers) between 0 and 'x'](http://stackoverflow.com/questions/8378870/generating-unique-random-numbers-integers-between-0-and-x). Another possible duplicate: http://stackoverflow.com/questions/2380019/generate-8-unique-random-numbers-between-1-and-100, – bfavaretto Jul 27 '13 at 22:23
- 
                    Which random numbers do you need? `INT` or `DECIMAL`, From-to? – Erman Belegu Jul 27 '13 at 22:23
- 
                    6Hint: fill array and shuffle. – Nemanja Boric Jul 27 '13 at 22:24
- 
                    You might be more interested in a solution without `Math.Random`: create an array of integers from the range that you'd like, shuffle it and every time extract the next item. – Jeroen Vannevel Jul 27 '13 at 22:25
- 
                    Can you rely on a server side implementation of Random() instead? Typically server side frameworks have better implementations than JS – TGH Jul 27 '13 at 22:27
- 
                    I'm trying to load 15 different htmls in an iframe from a button outside of the iframe. – user2617514 Jul 27 '13 at 22:27
- 
                    @BLaZuRE I'm using switch cases. – user2617514 Jul 27 '13 at 22:29
- 
                    `Math.floor((Math.random()*15)+1);` – Erman Belegu Jul 27 '13 at 22:30
- 
                    Define them as a named function and then call them with different parameters? Don't really know what you mean to be honest. Jsfiddle please. – Starkers Jul 27 '13 at 23:02
1 Answers
1
            Repeating what Nemanja Boric says in his comment: Fill an array and shuffle.
Here is an example: How can I shuffle an array?
    var myArray = ['1','2','3','4','5','6','7','8','9'];
    newArray = shuffle(myArray);
newArray will be something like ['3','8','1','9','6','4','5','2','7']
 
    