I'm still starting out but my understanding is you'd do this:
At the top of your script define a variable that preloads the scene you want to recreate:
var cardGameScene = preload("res://Scenes/CardGame.tscn")
That's a path to the scene in your resources rather than to the created scene in your project.
Then during the game when you need your existing scene to be reset you'd call queue_free(). And then you can recreate a new instance of the card game scene with:
variableForYourNewScene = cardGameScene .instance()
And you then need to make sure you add this new scene in to the game with:
add_child(variableForYourScene)
If you don't call add_child() then you haven't told Godot where in the game's tree you want this new node/scene to exist. Essentially make sure to put it in the same place your old scene was in the tree. For example:
$VBoxContainer/MarginContainer.add_child(variableForYourScene)
Note: I'm not sure if you would do that above line or:
get_node("VBoxContainer/MarginContainer").add_child(variableForYourScene)
I think they're the same but not 100% confident.