title: How do I randomize an array of sprites in swift?
body: <p>Everytime the app starts I want to shuffle the elements that are in my array, also the elements should be placed on the screen without repeating, how I can do this? I tried several extensions to shuffle my array but didn't work</p>
  
  <p>I'm using swift 4.1 and Here is my code:</p>
  
  <pre><code>import SpriteKit
  
  struct ContainerSprite{
      let block : SKSpriteNode!
  
      let containers = ["Container_Circle_Blue","Container_Hexagone_Blue",
  "Container_Square_Blue","Container_Star_Blue","Container_Triangle_Blue",
  "Container_Circle_DBlue","Container_Hexagone_DBlue","Container_Square_DBlue",
  "Container_Star_DBlue","Container_Triangle_DBlue","Container_Circle_Green",
  "Container_Hexagone_Green","Container_Square_Green","Container_Star_Green",
  "Container_Triangle_Green"]
  
      init (numContainer: Int, row: Int, col: Int , inThisScene: GameScene) {
          block = SKSpriteNode(imageNamed: containers[numContainer])
          let numberOfBlocks = 12.5
          let blockScale = 0.6   
       }
  }
  </code></pre>
  
  <p>This is one of the extensions I used but when I tried, it was showing elements repeated randomly</p>
  
  <pre><code>extension MutableCollection {
      /// Shuffles the contents of this collection.
      mutating func shuffle() {
          let c = count
          guard c &gt; 1 else { return }
  
          for (firstUnshuffled, unshuffledCount) in zip(indices, stride(from: c, to: 1, by: -1)) {
              // Change Int in the next line to IndexDistance in &lt; Swift 4.1
              let d: Int = numericCast(arc4random_uniform(numericCast(unshuffledCount)))
              let i = index(firstUnshuffled, offsetBy: d)
              swapAt(firstUnshuffled, i)
          }
      }
  }
  
  extension Sequence {
      /// Returns an array with the contents of this sequence, shuffled.
      func shuffled() -&gt; [Element] {
          var result = Array(self)
          result.shuffle()
          return result
      }
  }
  </code></pre>