Aggregation, Composition and Generalization are UML (class diagram) notations which represent different types of relationships i.e. types of logical connections.
In your case 'Game' is a generalization of 'CardGame'; 'CardGame is a specialization of 'Game'. I want to say that in your case the 'CardDecks' have a Composition relationship to your 'Cardgame' since your cards are created in the 'CardGame' class and would be deleted if you delete the 'CardGame' i.e. "implies a relationship where the child cannot exist independent of the parent" (What is the difference between aggregation, composition and dependency?). But if you store the specific 'CardDecks' in a database, or if you are trying to model the real world in which you can use the cards in another game then it is Aggregation. Your CardDeck class is a 'factory method' since it is a class which creates objects.
I don't think this should be classified as a design pattern since for it to be a design pattern it has to be describing recurring solutions to common problems in software design.
"In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations." (https://sourcemaking.com/design_patterns)