¿Cómo mostrar los anuncios que contienen CardView al azar pero no antes de 3 tarjetas y no después de 7 tarjetas?

estoy siguiendoesta tutorial para mostrar tarjetas e integrar la función de deslizamiento tipo Tinder.

En el medio decards Quiero mostrar anuncios y para eso estoy usandoAdMob.

Aquí está el código:

@Layout(R.layout.ad_cards_view)
public class AdCards {

    @View(R.id.adView)
    NativeExpressAdView nativeExpressAdView;

    private Context mContext;
    private SwipePlaceHolderView mSwipeView;

    public AdCards (Context context, SwipePlaceHolderView swipePlaceHolderView) {
        mContext = context;
        mSwipeView = swipePlaceHolderView;
    }

    @Resolve
    private void onResolved() {
        AdRequest request = new AdRequest.Builder()
                .addTestDevice("***")
                .addTestDevice("***")
                .build();
        nativeExpressAdView.setVideoOptions(new VideoOptions.Builder()
                        .setStartMuted(true)
                .build());
        nativeExpressAdView.loadAd(request);
    }

}

Aqui estaad_cards_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="350dp"
    android:layout_height="395dp"
    android:layout_gravity="center"
    android:layout_marginTop="35dp">

    <android.support.v7.widget.CardView
        android:orientation="vertical"
        android:background="@android:color/white"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_margin="10dp"
        app:cardCornerRadius="7dp"
        app:cardElevation="4dp">

    <com.google.android.gms.ads.NativeExpressAdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        ads:adUnitId="ca-app-pub-xxx"
        ads:adSize="320x300">
    </com.google.android.gms.ads.NativeExpressAdView>

    </android.support.v7.widget.CardView>

</RelativeLayout>

Ahora quiero mostrar estas cartas al azar en la pila pero no antes de 3 cartas y no después de 7 cartas.

Esto es lo que probé:

rand = new Random();
random = rand.nextInt(8-3) + 3;
count = rand.nextInt(8-3) + 3;

mSwipeView.addView(new Cards(mContext, profile, mSwipeView));
if (count >= random) {
    mSwipeView.addView(new AdCards(mContext, mSwipeView));
    random = rand.nextInt(8-3) + 3;
    count = rand.nextInt(8-3) + 3;
}

aunque este código muestra las tarjetas que contienen anuncios al azar, pero no se muestra de acuerdo con mis necesidades y esta tarjeta aparece incluso después de la 1ra tarjeta.

¿Cómo puedo asegurarme de que este anuncio que contiene una tarjeta aparece al azar pero no antes de 3 tarjetas y no después de 7 tarjetas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta