>>215

shuffle(_カードの束,_切られたカードの束) :-
    length(_カードの束,_カードの枚数),
    _カードの枚数 > 2,
    M is _カードの枚数 // 12 + 3,
    _乱数値 is random(M),
    length(L0,_乱数値),
    append(L0,L1,_カードの束),
    shuffle(L1,_カードの束_2),
    append(_カードの束_2,L0,_切られたカードの束),!.
shuffle(_カードの束,_カードの束).