title: How to solve "Argument type 'CustomStruct' does not conform to expected type 'Sequence'"
body: <p>I was trying to use the codes below to <em>shuffle</em> an array consisted of a simple custom struct called <code>Card</code>, and I get an error at <code>cards.remove(at: randomIndex)</code>:</p>
  
  <pre><code>Error: Argument type 'Card' does not conform to expected type 'Sequence'
  </code></pre>
  
  <p>Here are the codes:</p>
  
  <pre><code>var cards = [Card]()  // declare the array
  var shuffledCards = [Card]()
  for _ in cards.indices {
      let randomIndex = Int(arc4random_uniform(UInt32(cards.count)))
      shuffledCards += cards.remove(at: randomIndex)  // error appears here
  }
  cards = shuffledCards
  </code></pre>
  
  <p>Oddly, as a contrast, the similar design works for <code>Array&lt;String&gt;</code>:</p>
  
  <pre><code>var emojiChoices = ["", "", "", "", "", "", "", "", ""]
  let randomIndex = Int(arc4random_uniform(UInt32(emojiChoices.count)))
  emoji[card.identifier] = emojiChoices.remove(at: randomIndex)
  </code></pre>
  
  <p>Should I add something the the definition of <code>Card</code>? If so, what should I add? Thanks!</p>