有许多不同的方法用软件来产生随机数。然而,由于智能卡存储器的容量很有限而执行计算的时间又要尽可能地短,可选择的数量就严重受限了。在实践中,惟一被使用的方法是使用操作系统已有的功能,且只需要极少的额外程序代码。 当然,随机数的质量必须不受诸如会话被复位中断或自终端取走卡的负面影响。此外,发生器必须构造得使随机发生器的序列对每次会话都不相同。这可用烦琐的试探进行,但至少需要一次对EEPROM的写访问,以存储一个下次会话的新种子数。RAM不适合于这一目的,因为它需要能量来保存其内容。一个可能的攻击手段是继续产生随机数直至存储种子数的EEPROM单元失效。理论上,这将使每次会话所发生的随机数都有