Legt nur in #__users an. Keine Gruppen! Kann man ja im Backend per Sammellauf. Checke vorher die erste freie ID in Tabelle #__users. Und trage als $startId ein.

Hat den Vorteil gegenüber Joomla-Methoden, dass das System keine Emails versendet.

function generateRandomString($length = 7)
{
 return substr(str_shuffle(str_repeat($x = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil($length/strlen($x)) )), 1, $length);
}

$startId = 195;
$endId = 1350;

$prenames = array(
'Maria Elena ',
'Helena Dolores ',
'Petra Curiel',
'Clara Esparza ',
'Riese Piese '
);

for ($i = $startId; $i <= $endId; $i++)
{
 
 $db = JFactory::getDbo(); 
 $query = $db->getQuery(true);

 $query->insert($db->qn('#__users'));

 $columns = array(
  $db->qn('id'),
  $db->qn('name'),
  $db->qn('username'),
  $db->qn('email'),
  $db->qn('password'),
  $db->qn('block'),
  $db->qn('sendEmail'),
  $db->qn('registerDate'),
  $db->qn('lastvisitDate'),
  $db->qn('activation'),
  $db->qn('params'),
  $db->qn('lastResetTime'),
  $db->qn('resetCount'),
  $db->qn('otpKey'),
  $db->qn('otep'),
  $db->qn('requireReset')
 );

 $query->columns($columns);
 
 $rand_key = array_rand($prenames, 1);
 $name =  $prenames[$rand_key] . ' ' . generateRandomString() . ' ' . generateRandomString();

 $values = array(
  $i,
  $db->q($name),
  $db->q('Example' . $i),
  $db->q('Example' . $i . '@' . 'example.org'),
  $db->q('$2y$10$u9dut.K/N5Gkimw0qNdKvOCf3bc73gknUShNBO7YnLeQ60SBbu5Wu'),
  0,
  0,
  $db->q('2018-08-31 19:19:23'),
  $db->q('0000-00-00 00:00:00'),
  $db->q(''),
  $db->q('{"admin_style":"","admin_language":"","language":"","editor":"","helpsite":"","timezone":""}'),
  $db->q('0000-00-00 00:00:00'),
  0,
  $db->q(''),
  $db->q(''),
  0
 );
 
 $query->values(implode(',', $values));

 $db->setQuery($query);
 $db->execute();
}

exit;