This version of the code below to generate random integers through real numbers, starting from a randomized part in the guide number, only makes the random shuffle after the number segment has been randomly selected (thus acquiring a behavior Even closer to the guide number:
num = Pi;
Text[Style[num, Large, Orange]]
ddd = 10;
Text[Style[ddd, Medium, Pink]]
dig = 100000;
nn = Abs[N[num, dig]];
div = Divisors[ddd];
hh = If[0.001 < nn < 1000,
Text[Style["NUMBER SIZE OK", Medium, Bold, Green]],
Text[Style["CHANGE NUMBER SIZE", Large, Bold, Red]]]
fi = IntegerDigits[
If[100 < IntegerPart[nn*10^dig]/10^dig < 1000,
IntegerPart[nn*10^(dig - 3)],
If[10 < IntegerPart[nn*10^dig]/10^dig < 100,
IntegerPart[nn*10^(dig - 2)],
If[0.1 < IntegerPart[nn*10^dig]/10^dig < 1,
IntegerPart[nn*10^dig],
If[IntegerPart[nn*10^dig]/10^dig > 1,
IntegerPart[nn*10^(dig - 1)],
If[0.01 < IntegerPart[nn*10^dig]/10^dig < 0.1,
IntegerPart[nn*10^(dig + 1)],
IntegerPart[nn*10^(dig + 2)]]]]]]];
m = FromDigits[RandomInteger[dig - ddd, 1]];
mm = FromDigits[RandomInteger[dig - ddd, 1]];
mmm = FromDigits[RandomInteger[dig - ddd, 1]];
mmmm = FromDigits[RandomInteger[dig - ddd, 1]];
mmmmm = FromDigits[RandomInteger[dig - ddd, 1]];
mmmmmm = FromDigits[RandomInteger[dig - ddd, 1]];
geni = Take[fi, {m, m + ddd - 1}];
fei = If[FromDigits[Take[geni, 1]] > 0.5, geni,
Take[fi, {mm, mm + ddd - 1}]];
ffi = If[FromDigits[Take[fei, 1]] > 0.5, fei,
Take[fi, {mmm, mmm + ddd - 1}]];
fgi = If[FromDigits[Take[ffi, 1]] > 0.5, ffi,
Take[fi, {mmmm, mmmm + ddd - 1}]];
fhi = If[FromDigits[Take[fgi, 1]] > 0.5, fgi,
Take[fi, {mmmmm, mmmmm + ddd - 1}]];
fii = If[FromDigits[Take[fhi, 1]] > 0.5, fhi,
Take[fi, {mmmmmm, mmmmmm + ddd - 1}]];
cxc = RandomSample[fii];
fen = If[FromDigits[Take[cxc, 1]] > 0.5, cxc, RandomSample[fii]];
ffn = If[FromDigits[Take[fen, 1]] > 0.5, fen, RandomSample[fii]];
fgn = If[FromDigits[Take[ffn, 1]] > 0.5, ffn, RandomSample[fii]];
fhn = If[FromDigits[Take[fgn, 1]] > 0.5, fgn, RandomSample[fii]];
fin = If[FromDigits[Take[fhn, 1]] > 0.5, fhn, RandomSample[fii]];
Text[Style[fin, Small, Purple]]
Text[Style[FromDigits[fin], Medium, Bold, Blue]]
Grid[{{"dig 1", "dig 2", "dig 3", "dig 4", "dig 5", "dig 6", "dig 7",
"dig 8", "dig 9", "dig 0"}, DigitCount[FromDigits[fin]]},
Frame -> All, Background -> {None, {{LightRed, Green}}}]
ListPlot[fin, PlotRange -> {{0, ddd + 1}, {-1, 10}},
PlotStyle -> PointSize[Medium], PlotTheme -> "Scientific",
Ticks -> Automatic]
div;
cc = ddd/%;
dd = FromDigits[Take[cc, {IntegerPart[Sum[1, {k, cc}]/2]}]];
Partition[fin, dd];
ArrayPlot[Partition[fin, dd],
ColorFunction -> ColorData["ThermometerColors"], Mesh -> All,
PixelConstrained -> True, MeshStyle -> Blue, PlotTheme -> "Detailed",
PlotLegends -> Placed[{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, Below],
ImageSize -> 400]
PieChart[{DigitCount[FromDigits[fin]]},
SectorOrigin -> {Automatic, 1},
PlotTheme -> {"BoldScheme", "VibrantColor"},
ChartElementFunction -> "NoiseSector",
ChartLabels -> {DigitCount[FromDigits[fin]]},
ChartLegends -> {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}]