<?php
error_reporting(-1);
mb_internal_encoding('utf-8');

$total=30;
$skip=5;
$survivors=7; // Видимо столько должно остаться
$allPeople=array();
$loosers=array();
$winners=array();

function generateName()
{
    $letters = array(
        'ко',   'и',    'дзу',  'ми',
        'са',   'ку',   'ра',   'да',
        'чи',   'а',    'ки',   'ми',
        'на',   'го',   'ха',   'ру'
    );
    $name = ' ';
    for ($i = 1; $i <= 4; $i++) {
        $random = array_rand($letters);
        $randomText = $letters[$random];
        $name=$randomText . $name;
    }
    return $name;
}

for ($i=0;$i<$total;$i++){
    $newname=generateName();
    $allPeople[$i]=$newname;
    $cloneallPeople[$i]=$newname;
}
while ($survivors<(count($allPeople))){
    for ($i=0;$i<count($allPeople);){
        for($j=0; $j <$survivors+1;){
            if ($j==$skip){
                if (count($allPeople)<=$survivors){
                    break;
                }
                $loosers[$i]=$allPeople[$i];
                unset($allPeople[$i]);
                sort($allPeople);
                $j=0;
            }
            else{
                $i++;
                if($i>count($allPeople)){
                    $i=0;
                }
                $j++;
            }
        }
    }
}
$result = array_intersect($cloneallPeople, $allPeople);
echo "Выигрышные места ".implode(", ", array_keys($result))."\n";
echo "Остались пить чай с тортиком ".implode(", ", $result)."\n";