¿Cómo establecer el valor (cadena) de una variable para que sea igual a una clave en una matriz?

Tengo la siguiente matriz:

var deckArray = [
        "card1": ["rank","suit"],
        "card2": ["rank","suit"],
        "card3": ["rank","suit"],
        "card4": ["rank","suit"],
        "card5": ["rank","suit"],
        "card6": ["rank","suit"],
        "card7": ["rank","suit"],
]

Recorté el resto de la matriz por brevedad, pero todo contiene 52 objetos. Lo que quiero hacer es elegir un número aleatorio del 1 al 52 y establecer elfirstCardString propiedad para que sea igual a la clave que corresponda a ese índice en la matriz.

Por ejemplo, si el número aleatorio que genera es5, estableceríafirstCardString ser igual acard5.

He intentado hacerlo así:

let firstRandomNumber = Int(arc4random_uniform(52))
let firstCardString:String = self.deckArray[firstRandomNumber]

Pero recibo el siguiente error:

No se puede subíndice un valor de tipo '[String: Array]' con un índice de tipo 'Int'

Esto no tiene sentido, porquefirstCardString:string es explícitamente de tipostringno int.

Respuestas a la pregunta(1)

Su respuesta a la pregunta