/** * Select a pre shared OTP from a list that a user can use. * * @param string $cardId * Card ID to select a OTP from. * * @return integer * OTP ID of a available OTP. */ public static function select($cardId) { $card = self::load($cardId); $available = array_keys($card['usable']); $selected = phpsecRand::int(0, count($available) - 1); return $available[$selected]; }