//这样产生0 ~ 100的强随机数(含100)
int max = 100;
int rnd = int.MinValue;
decimal _base = (decimal)long.MaxValue;
byte[] rndSeries = new byte[8];
System.Security.Cryptography.RNGCryptoServiceProvider rng 
    = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(rndSeries);
//不含100需去掉+1 
rnd = (int)(Math.Abs(BitConverter.ToInt64(rndSeries, 0)) / _base * (max+1));

//这个rnd就是你要的随机数,
//但是要注意别扔到循环里去,实例化RNG对象可是很消耗资源的

原文地址:http://www.2cto.com/kf/201007/52493.html

/// <summary>
/// 生成随机数
/// </summary>
/// <param name="minVal">最小值(包含)</param>
/// <param name="maxVal">最大值(不包含)</param>
/// <returns></returns>
public static int GetRandom(int minVal, int maxVal)
{
//这样产生0 ~ 100的强随机数(不含100)
int m = maxVal - minVal;
int rnd = int.MinValue;
decimal _base = (decimal)long.MaxValue;
byte[] rndSeries = new byte[8];
System.Security.Cryptography.RNGCryptoServiceProvider rng
= new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(rndSeries);
long l = BitConverter.ToInt64(rndSeries, 0);
rnd = (int)(Math.Abs(l) / _base * m);
return minVal + rnd;
}

使用:

int randomi = 0;
randomi = GetRandom(100000, 999999);

最新文章

  1. 在centos7(EL7.3 即 kernel-3.10.0-514.X )上安装BCM4312无线网卡驱动要注意的问题
  2. SQL Azure (15) SQL Azure 新的规格
  3. wkhtmltopdf 安装使用笔记(CentOS6)
  4. go语言 类型:整型
  5. OpenStack 的防火墙规则流程
  6. Visual Studio 调试技巧
  7. OC-设计模式KVC+KVO定义及使用
  8. Java [Leetcode 206]Reverse Linked List
  9. jquery多级手风琴插件–accordion.js
  10. codeforces 416B. Appleman and Tree 树形dp
  11. 决策树J48算法
  12. (2017浙江省赛E)Seven Segment Display
  13. linux下的外网木马前期要的工具
  14. tkinter简介(一)
  15. MySQL查看表占用空间大小
  16. CodeForces - 1102A
  17. Linux yum源
  18. CENTOS7常用的基础命令集合(一)
  19. MSI-X 之有别于MSI
  20. Android cannot be cast to android.app.Fragment

热门文章

  1. 【剑指Offer】俯视50题之1-10题
  2. tools-eclipse-001-如何安装插件
  3. 【Cocos2dx 3.x Lua】TileMap使用
  4. 零碎收集cocos知识
  5. node必知必会之node简介
  6. ng-深度学习-课程笔记-16: 自然语言处理与词嵌入(Week2)
  7. Redis 资料整理
  8. c/c++获取系统时间函数
  9. http://www.cvvision.cn/2888.html
  10. Ubuntu安装配置rclone(Onedrive应用)