あなたは間違った視点から問題に取り組んでいます。
Smarty はデータを表示するために使用され、データを操作するための命令セットは非常に限られています。ここではロジックについて話しているので、別の場所でランダムな一意の番号を生成し、その結果を Smarty エンジンに渡す必要があります。
したがって、PHP を使用していると仮定して、次のようにしてみてください。
$min = 1;
$max = 100;
$items_to_pick = 5;
$values = array();
for($i=$min; $i<= $max; ++$i){
$values[] = $i;
}
shuffle($values) //see PHP doc http://www.php.net/manual/en/function.shuffle.php
$result = array_slice($values, 0, $items_to_pick);
$smarty->assign('random_numbers', $result);
そして、あなたのテンプレートファイルで:
{foreach from=$random_numbers item=random}
{$random}
{/foreach}
コンテンツとプレゼンテーションを常に分離するようにしてください。Smarty は、渡された値を気にするべきではありません。(私の意見では、何かを表示する必要があるかどうかを確認するための簡単なチェック以外)