I'd start by creating a constructed list with these instructions:
Begin Unverified Perl
# Params
my $selectQ = 'Q1';
# Run
my $len = 0;
for (my $i = 1; $i <= 7; $i++) {
if (GETVALUE($selectQ . '_' . $i)) {
ADD(PARENTLISTNAME(), $i);
$len++
}
}
RANDOMIZE();
LISTMAX(3);
if (GETVALUE($selectQ . '_8')) {
if ($len < 3) {
ADD(PARENTLISTNAME(), 8);
}
elsif (rand(100) < 8) {
LISTMAX(2);
ADD(PARENTLISTNAME(), 8);
}
}
End Unverified
If you want to show a series of questions relating to each item chosen in this constructed list, you should add a loop to your survey. You can set the loop to use this constructed list, then use Sawtooth Script like this in the questions to show the label of the current item to the respondent:
[% LoopLabel() %]