title: How to randomize cards data from model array without repetition
body: <p>I am displaying cards data from my model array, how do i randomize card data everytime i start the app and should not be repetitive. I am using ZLSwipeable view library for creating cards fro swipe feature. this is the function in which i have write all my code for swipe cards, and in the code wordsdata is the model array that i have declaredlike this var wordsdata = ModelRsult.
  CardView is the view i am displaying my cards into</p>
  
  <p><a href="https://i.stack.imgur.com/fvpe2.png" rel="nofollow noreferrer">screenshot of my card display screen</a></p>
  
  <p>in the image it is shown banana as the first data, now when i run the app again it should show me another data first and so on</p>
  
  <p>my source code:</p>
  
  <pre><code>func nextCardView() -&gt; UIView?
      {
          let arrayData = wordsData
          if (self.colorIndex &gt;= arrayData.count)
          {
              return nil
          }
  
          let cardView = CardView(frame: swipeableView.bounds)
  
          if loadCardsFromXib
          {
              let contentView = Bundle.main.loadNibNamed("CardContentView", owner: self, options: nil)?.first! as! CardView
              contentView.superVC = self
              contentView.translatesAutoresizingMaskIntoConstraints = false
              contentView.backgroundColor = cardView.backgroundColor
  
              cardView.addSubview(contentView)
  
              let data = arrayData[(self.colorIndex)] as ModelResult
              contentView.wordModel = data
  
              let savedValue = UserDefaults.standard.bool(forKey: "isLangChanged")
  
              tempLangChanged = savedValue
  
              if tempLangChanged == false
              {
                  if let spanishName = data.cardWordEnglish, spanishName.count != 0
                  {
                      contentView.wordSpanish.text = spanishName
                      print(spanishName)
                  }
              }
              else
              {
                  if let dict = data.cardWordImage, dict.count != 0
                  {
                      let url = WS_wordIconUrl + dict
                      contentView.wordImage.kf.indicatorType = .activity
                      contentView.wordImage.kf.setImage(with: URL(string: url))
                  }
  
                  if let spanishName = data.cardWordSpanish, spanishName.count != 0
                  {
                      contentView.wordSpanish.text = spanishName
                      print(spanishName)
                  }
              }
  
  
  
              contentView.soundBtn.addTarget(self, action:#selector(self.soundBtn(sender:)), for: .touchUpInside)
              contentView.hideCard.addTarget(self, action:#selector(self.hideCard(sender:)), for: .touchUpInside)
  
              contentView.soundBtn.tag = self.colorIndex
              contentView.hideCard.tag = self.colorIndex
  
              cardView.tag = self.colorIndex
              constrain(contentView, cardView) { view1, view2 in
                  view1.left == view2.left
                  view1.top == view2.top
                  view1.width == cardView.bounds.width
                  view1.height == cardView.bounds.height
              }
          }
          colorIndex += 1
          return cardView
  
      }
  </code></pre>