Analysis describing the combination of cards
The order is not the problem here but rather the fact that you have multiple virtual calls in your constructor. This is really bad because in your derived class, when they are being instantiated, your constructor will first call the base implementation of the virtual functions your base class constructor, which might result  in unexpected behaviour form t he virtual functions.

Also you shouldn't be using fields, use properties instead.

Here is how you can avoid all of your current issues : 

public abstract class TichuTrick
{
    private readonly List&lt;CardData&gt; _cards;
    public List&lt;CardData&gt; OrderedCards =&gt; OrderCards(_cards, WildcardsCount);

    public int CardCount { get; }

    public int TrickValue =&gt; CalculateTrickValue();
    public int HighestCardValue =&gt; CalculateHighestCardValue();
    public int WildcardsCount { get; }

    internal TichuTrick(List&lt;CardData&gt; cards, int cardCount, int wildcardsCount)
    {
        if (wildcardsCount &gt; 1)
        {
            throw new System.ArgumentException("More than one wildcards support, is not yet implemented", nameof(wildcardsCount));
        }
        CardCount = cardCount;
        _cards = cards;
        WildcardsCount = wildcardsCount;
    }

    protected virtual List&lt;CardData&gt; OrderCards(List&lt;CardData&gt; cards, int WildcardCount)
    {
        return cards.OrderBy(x =&gt; x.NumericalValue).ToList().CopyList();
    }

    protected virtual int CalculateTrickValue()
    {
        return CalculateHighestCardValue();
    }

    protected virtual int CalculateHighestCardValue()
    {
        return OrderedCards.Last().NumericalValue;
    }
}


I also don't think this parameter should be a parameter at all cardCount you can access the card count from the array, but since I'm not 100% sure that this is correct I left it there.