Generating sequences with predictable statistics

An OP on the Forum asked how to generate a run of 100 characters, given that A should appear ten times, B appear 20, and C 70 times. Unfortunately his framing of the question left it unclear whether he wanted that to be the statistical average over repeated runs of 100 throws or that in every 100 there should be exactly that ratio.

Please help me to enerate a code for a series let say wit 100 records with letter A, B,C .In these series should be randomly 70% A ,20%B and 10%c.I tried to use RND but no succes.

He then offered code with a different specification...

I interpreted it the first way; another moderator the second. The first interpretation is appropriate in the kind of numerical science simulation I enjoy- you generate A, B or C in appropriate probabilities.

The second is appropriate for games involving a distribution of 'hands' involving finite numbers of each to distribute. This can only be done for certain numbers of sample outputs- you can't have A exactly 70% of the time in a run of say 101 characters.

Both easily model-able. And several ways to code each algorithm.

Unfortunately the OP didn't get back to explain which he wanted! That didn't stop us playing... two solutions follow. Neither are necesssarily the best way I've done it, but I have other things to do...

Example code for both situations.

    '   *** tenTwentyThirty,bas ***

    mainwin 140 30

    data$ =""

    for i =0 to 99
        select case
            case i <10
                data$ =data$ +"A": numAs =numAs +1
            case i <30
                data$ =data$ +"B": numBs =numBs +1
            case else
                data$ =data$ +"C": numCs =numCs +1
        end select
    next i

    for i =1 to 100  '   test the routine to stir up a new sequence with same numnber of A, B and C one hundred times..
        print data$,
        print numAs; " "; numBs; " "; numCs

        for swapA =1 to 100
            swapB =int( swapA +int( ( 99 -swapA) *rnd( 1)))
        if ( swapA <>swapB) then
            if ( swapA <swapB) then

                data$ =_
                        left$( data$, swapA -1)_                  'everything, unchanged, up to left of swapA position
                        +mid$( data$, swapB, 1)_                  'character from position swapB
                        +mid$( data$, swapA +1, swapB -swapA -1)_ 'section of data$ between swapB and swapA
                        +mid$( data$, swapA, 1)_                  'character from position swapB
                        +mid$( data$, swapB +1)                   'rest of data$
            else
                data$ =_
                        left$( data$, swapA -1)_                  'everything, unchanged, up to left of swapA position
                        +mid$( data$, swapB, 1)_                  'character from position swapB
                        +mid$( data$, swapA +1, swapA -swapB -1)_ 'section of data$ between swapB and swapA
                        +mid$( data$, swapA, 1)_                  'character from position swapB
                        +mid$( data$, swapB +1)                   'rest of data$
            end if
        end if

            'print data$; " "; swapA;" "; swapB
        next swapA

        numAs =0: numBs =0: numCs =0

        for j =1 to len( data$)
            ch$ =mid$( data$, j, 1)

            select case
                case ch$ ="A"
                    numAs =numAs +1
                case ch$ ="B"
                    numBs =numBs +1
                case ch$ ="C"
                    numCs =numCs +1
            end select
        next j

    next i
    end

Giving output ...

AAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC            10 20 70
CCBCCCCCCCBBCABAABCCCCCBBCCCCCCCCBCACCBBCCCCCBCCAACBCCBCBCCCCCBCCCCCCCCBACCCCCACCCBCCCCBCCCCCABACBCC            10 20 70
CCCACCCCCACBCACCCCCCBBCCCCCCBABCCCCCBCBBCCAABCCBCBBCCBCCCABCACCABCCCCCCCBCCCCCBACCCBCBCCCCCCCCCCBCCC            10 20 70
CCCBCACBCCACBCBCCCCCCCCBBCCCBCBCCCCCBCCBBCBCACCBCBCCCCCCCCCBCCCCBCACCCBAAABCCCCCCACCCBBCCACCCCCCACCC            10 20 70
BCABCCCCABCCCCACCBCBCCCCCCCBCCBBCBCCCCCABAACABCCCCACCCCCCCCCCCCCBCCBBCBBBCCCAACCBBCCCCCCCCCBCCCCCCCC            10 20 70
BABCCCCCCABCBCCCCCBCCCCCCCBCCCBCBACCBACBCCBCCCCCCCCCCCBCCCABCCBBCBCCCCBCCCCBCAACCCACCBCACCCCBCCCACCC            10 20 70
CACBCCCCBCCCCCCCCCACBCCBBCCCBBCBCBCBCCCACCCACCCBCACBCBCCCCCCCCCAACBBCCCBCCCBCCCACCCACCCCCCCCABBCCBCC            10 20 70
CCBBCCCCBCBCCCCCBCBCBCCCBCACCCCBACACABBCCBCCCCCCCCCCACCCCCCBACCCBCCBCCCCCACCABACBCCCCCCCCCBCACBCCBCC            10 20 70
CBCCCBCCBCBCACCCBBCCCBCCACACAACCCCCCCCCCCCBCACCCCCBCACCBCCBCCCCCCCCCCBCCCCACCCCCABCCBBCBCCCCBBCBBACC            10 20 70
BACACCCCCCCCCABCBCBCCBCCCACCCCCBACBCBCBCCCBCCCCCCACCCBBABCBCBBCCCCCCCACCACCBCACCCCBBCCCCCCBCCCCCCCCC            10 20 70
CCCCCBCCCCCACBCCCCCCBCBCCCCCCACACCCCCCCCCCCBCCCCCBCBCCBCCCCCCBCBABCACBBCBBCBBCBACCCCCACAACCCCABCBCCC            10 20 70
CCCCACACCCCCBBCBCCCCABCACACBBCCCCCBACCCBCACBCCCCBCBBCBCCCBCCCCCCBBCCCCCCCCCCCBCBCCCBCCCCCCCBACCACACC            10 20 70
CBCCABCCCCCCCBBACCCCCCCCBABBBCCCACCCBCCCACCCACBCCCABCCBBACCCCCCBCCBCCCCCACCBCACBCCCCBCCCCCCCCCBCCBCC            10 20 70
CCCCACCBCACCBBCCCCCCCABACCBBCCCCCBCCBCCCCCCCCBABCACCCBACBCCCBCCCCBCBCCCCCCCCCCCACCCCABBCCBACCCCBCBCC            10 20 70
BCABBBBCCCACACCCABBCCCCCCBCCCCCBCCACBCCBBCCCCCCBCBCCBCCCACBBCBCCCCACBCCACAACCCCCBCCCCCCCCCCCCCCCCCCC            10 20 70
CCCCBBBCCABBCACCBCBCBCCCCCCCCCACCBCCACABBCCCBCCCBBABCCCCCCCCACCBBCCCBCCCCCCACCCABCCBCCCCCCCCACCCCCCC            10 20 70
CCCCCCCCACCCABBCCCCCCCCCBCBCCCCACBCCBCCBCCCBCCCBABCCCCACBCCCCCACCBCBBCACCCBCCBCCCCACCABCBCCBCACCCBCC            10 20 70
CCCCBBCCCCCCCCCACCCCCACCCCCBCBBBBCCCCCCBACBABABCCCCCCBCCBCCCCACCCCCBCCCCBBBCCCCCACCBCCCCCACBACCBACCC            10 20 70
BCCACCCCBCCBCCCBCCCCCCACBCCBCBCCACBCCBCCCACACCCCBCACBCBCCCCCCCBCCCCCBCCCCBCCCCCCCBCABACCACACCCBBBCCC            10 20 70
CCCCBCCCCCCCABBCCCCCCBCCCCCACCCACACBCCBCBBCCBBCBCBBCBCCCCCCACCBCACBCCCBCACCCCCBCACCCACCCCCACCCCBBCCC            10 20 70
CCCCCCCCBBBBCBCCCCCCCCCCBCCCCCBCCCBABCCCCACCCBCACBCCACCCACCCCACCCCCCCCCBCBBCABCBCACABCBCCBCACCCCBCCC            10 20 70
BCACCCCCBCCCBCCCCCBCBCACCCCCACACCACCCCCBCCCCCCCCACBACCCCCCCCBCCABBBCCCBBBBCCCCBCCCCCBCACCCABBCCBCCCC            10 20 70
ACCBCBCCCCACBBBACCCBCCCACBCACBBBCACBCBCCCCBCCCCCCBCCBCCBCCBCCCCACCBCCCCACCCCCCACCBACCCCBCCCCCCCCCCCC            10 20 70
CBCCBCBCCACCABCCACCBBACBCCCCABBCCCACCCCAACCCCCCCBBCCCCCCCBCCCCCCCCBCCCCCACCCBCACCBCBCCCBCCBCCCBBCCCC            10 20 70
BBBCCBCCCCCCCCCCCACCCCCBBCCBACBBABCCBACCCBCCCCCCCBCCCCCCCBCABCCCACCCCCCACBBCCCABCCCCCCACBCCCACCBCCCC            10 20 70
BCBCCCCBBCACBCCCCCBCCBCCCACCCBCCBCCBCCCCACCCBCBCCCCCBCACCCCACCCACACCBCBBACCCACCBCCCCCCABBCCCBCCCCCCC            10 20 70
CACCCBCCCBCBACCBCCABCCAACCCABCCCBCCBCABCCCCBCCCCCCCCCCCBCCCBCACCCBCCCCCCBCBCCCCCCBCBACBCCCCCACCBBCCC            10 20 70
CCCCCBCCCCCCCCBBCCCCACBCCABCCCCCCACABCBBCCAACBCCCCBCCCCCCCCCCCCCCCBCCCCBCCBACBCCCBCBACACCCCBCABBBCCC            10 20 70
CCCBCCACCCCABCCCCCACCCCAACBCCCCACCBCCCCCCBCBBCACCCCCCCBCCCACBCCCCCCCCCBCBBCCCACBBCABCBBCCBBCCCBCCCCC            10 20 70
BCCCCCABCACACCCCACCBCCACCCCBBACBCCCBCCACCCCCCBCCCCCCCCBCACCCCBCBACCCCCBCCBCCBBBBCCCCCCBCCCCACCCBCBCC            10 20 70
CACCCCCACBBCCCBCCBCCCCCBCCCCBBCCCCACCCCBCCAACCCBBCCACBBCCACCCABCBCCCCCCCCBCCCACBCCCCCCACCCBCBBCCCBCC            10 20 70
CBCACCCCCCBCABCCBABACCCCBCBCCCCCCCCCCCCCCBCCCBACCBBCBCCBCCCCCCACBCACCBCCCCCABBCCCCCCCCBCCCCBABCACCCC            10 20 70
CCCCBCCCCACCCCCCBCCCBCCCACCCCCCABCCCCCBACBCCBBACCCBBCCACBCBCCCCBCBBACBCCCBCCCCACCCCCCCABCCCCCCACBBCC            10 20 70
CBCCCCCBCACCCBBCCCCCCCBCCCCACCCCCCCCCBCAACCCACCCCBCCACACCCBCBBCCCCBCBCCCACBCBCCBCBCCCCBBCCBBCCAACCCC            10 20 70
CBCCCBCCCBCBBCCBCCACBCCCCCCCCBCCCCCCBCCCCBBACACBCCCCCCAABBBCCCCACCCCCBCCACCBACCCCCACCCCCCCBCBCABCCCC            10 20 70
CBCBCBCCCAACCCCCACCCCACCBCCCCCCCCCBBCCCCCCCACBBBBCCCCCCCCCACCBBCBAACBCCCCCBCCCBCBCCCCCCABCBBCCCCACCC            10 20 70
CBBCAACBCCCCCCCCACCCCCBCCCCAACCBCCCBBCACCBCCCBABBCCCCCCCCCBCCCCBCACCBCCCBBACCBCCCCBCCCCCACCCCCCBBCCC            10 20 70
CCCBACCCCCCBCCCACCCBBACBCCCCBBCCCCCACACBBCCBCCCBCCCCBCCCCBBBCCBBCCBCCCCACCCCCCCCCCCCCABCBCACCACCACCC            10 20 70
BCACBCCCCCCACCCCCCCCCCCCCCCCCACCACAACBBCCBCCCCCCBBBBBCBBCCCCCCBCBCCBBCCACACCBCBCCBCCCCCCCCCACCBACCCC            10 20 70
CCCCCCBCCCCCACCCCBCBBCBCBBCBACCCACCCCCCCCAABCCACCCACCCCCCCBCCCCBCCBCCCBCCBCCCCCCBBBBCCCCACCBACACCBCC            10 20 70
BCBCCCACCCCCCCCCCCBCBCCBCCCCAAACCBBCBCCCCCCCBBCCCCACCCCBBAABBCACBCCCCCCABCCCCCCCCBBBCCCCCACCCCBCCCCC            10 20 70
CCCBCACCACCCCCCCCCCACCCBCCCBCCCCACCBBCCCACCABCCABBBCBBBCCCBCCCCBCBCCCCCCACCCCBCCCABCCACBBCCCBCCCCCCC            10 20 70
BBCCBCACCCCACCBCCCACCCCBCACABBCCBBCBBCACCCCCACCCCCBCCBBCCCCCACCCCCCBCCBCCCCCCACCCCBCCCCCACCCBCBCCBCC            10 20 70
CBACABCCCBBCCCCCCCCCBBCCACBCCBCBACCACCBCCCBCBCCCCCCCCCCCCCCBCABCAACCCCCCCCBCCCCBCCCCCBBABCCCCBACCCCC            10 20 70
CCCCCAACCCCBCCCCBCBCCCCCBCBCBACCCCCCCACCBCCCBAAABCBCBCCBBCCCCBCCBCACBCCCCCBCCACACCBCCCBCCCCCCCCBCCCC            10 20 70
CCCCACCCAACCCBCBABCCACACBCCCCACCCCCCCCCCCCBBBCBBBBAACBCCBCCBCCCCCCCBCCCCCCCCCCCCCBCACBCCCCBCCCBCBCCC            10 20 70
CCBBCCCBBCCCACBCCCCCCCBCCACCBCCCCBCCCCBBCAAACCCCBCCBCBCCBACCCCBCCCCCBBCCCACCCCACACCBCCACCBCCBCCCCCCC            10 20 70
CCACCCCCCCACCCBCCACBBCCCBCAACCBCCBCCCBCCBCBBCCCCCCCCCCBCBBCBCCCCCCBCBCACCCACCCCCBACBCCCCABACCBCCCCCC            10 20 70
BCCCBCABCCCCBCCCCBCCCCCCCCCCCCBCACCCCACCBCCCBCCBCBCCCBCCCCCACBCCCCCCCABACBCCCBCCBBCCABACACBCCCBCCACC            10 20 70
AACCCCBCCCACCCCCCCCCCCCCBCBACCCCCBCCCBBCCCCCCCACCCCCACCCBBACCBCCBCCCCCCCCBACBBCCCBCABCBCCBACCCCBBBCC            10 20 70
BBCCCCBBCCBCACCCCCCCCCCCCCAACAACCBCCBBCABBCBCCCCCACCCCCCCBCCCACCBCCCCBCCCCBCCCCCBCCBCCACCBCBCCCBCACC            10 20 70
BACCCCACACBCCCCCCCBBCCCBACCCCCCCBACCCCCBACCCCCACCCCCCCCCBCBBACCCBCCCACBBBCBBCCCCCCCCCCCCBCBCABCCCBCC            10 20 70
CCBCCBBCCACCCCCBBCCBACCCCCACCCBCBBCCCCCCBACCCCCCCBACCCCCBCCCABCCCBACCCCCBCCCBCBBBCCBACCACCACCCCCCCCC            10 20 70
CCBCCCCCCCCCCCABCCBCBBCACBCCCCCBCCCCCCACBCCCACBCBCCCCCBCCBCACCCCCBCCCCCCCCCBBCBBCAABCCACBACACCBCCCCC            10 20 70
CCCCCCBCCCCCCCCCAACCACABCBBCCCABCCCACCBCCCCACCBACCCCCACCBBCBCCCCCCBCCCCCCCCBCBCCACBBBCBCBCCBCCBCCCCC            10 20 70
CCCCCBCCCBBCCABBCBCBCCCCCCCBBCCACAACCBBCBCCCCCBCCCAACCCBCCCCABCCCCCCCACCACCCCCCCBBACBCBCCCBCCCCCCCCC            10 20 70
ACCCCCCACCCCBBCCBCBCACBCCCCBBCCABCCCCCCCCBBCCCCCCCBCCCBCCBCCBAACCCABCCCCCBCCCBCCACCBCCBACCBCCACCCCCC            10 20 70
BCCCCCCCCCCBCCCCCCBCCACCCCCCBACCCBCCAACCABCCCCCCCCCBCCCBCBABCBCAABCCCCCBCCCABCBCBACBCBBCCCCCCCCCBCCC            10 20 70
CCCBCCCBCBBCCCCBCCCCBCCBACBCCCCCCACCBBABCBBAACBCBCCCACCCCCCBCCCBCBCACCAACCCBCCCCCCCCCCBCACCCCCCCCCCC            10 20 70
CCCCCCCCBBCCCCCCBCCCBBCCCCBABCCACCBCACCCCCACBCCCCCCCCCCCCCCCCCABAABCACBBCCBCCCCCCBCCCACCCCBBBBBCCACC            10 20 70
CBCCCCCABCBCCBCCACCBCBBCCCBABBCCBCCCCCCCBCACBCCCCACCCACCCBCBCCCABBACCCCCCBBCCCCCCCCCBCCCCAACCCCCCCCC            10 20 70
CBCCACCABCACCACACCCBCCCCCCCCCACCBBCCBCCCCCBCCCCCBACCACCCCCCBCBCCBACBBABCBCCCCBBCCCCCCCCCBCBCBCCCCCCC            10 20 70
CCBCCCCCBBABCCCCCCCBCCABACBCBCCCCACCCBCCABCCABBACCCACCCCCCCCCACBCCCCCBCCBCCBCCBCCCBCBCCCACCBCCCCCCCC            10 20 70
BBCCCCCCCCCCBCCBCCCBACBCCCCACBCBBCBCCCCACBCCCCBACCCCBCCACBCCCCBCCBCCACCCCCCCCCBCCABACACBCCCBCACCCCCC            10 20 70
CCCCCCCCCCCCCCBCCBCCCAACCBCAACCBBACCCCCCCCCCCCACBCBBACCBABBCCCCBBCBCBCCCCACCBCCBBCCCCCCCCACCCBCCCBCC            10 20 70
CCCACCCBCCCCCCCBCCBCCCCACABBBCCCCCCBCCBCACCBCCBBCCCBCBCCACBBCCCCCCACCCCCCCCBCCCCCACCBABCACCCCCABBCCC            10 20 70
BBCACABCACBCCCCCCCCCBBCCCACBCBCCBCCCCCCCBCCACCCCCCCCCCBBCCCACCCACCCCCCBBACCBBCBCCCCCABCCBCCBCCCACCCC            10 20 70
CCCCCCCCACCCCBBCCCCACCCACBACCBBBBBCCCCBCBCACCCCCCCBCBCBCCCCCBCBBCCCCCACBCCCACCCACCCBCBCACCCCACCBCCCC            10 20 70
CCCBCCCCBCABBBCCACACBCACCCCCCBACCBBCCBCCCACCCBCCCCBCBCCBBCCBCCBCCCCCCCACACCCCCCCCBCCCCCCBCBCAACCCCCC            10 20 70
CCCCACCCBCCCCBCBCBCACCCCBCCCCCCCCACCBACCBABBCACABBACBCBCCCBCCBCCBCCCCCCCCCABACCCCCCCBCBCCCCCCCCCBCCC            10 20 70
CCCBCBACBBCBCACBCCCBCBACBCCCCCCCBCCCBCCCCCACCBCCCAACCCCCCACBCCCCCCCCBCBCCBCCCACCBBCCCCACCBCCACBCCCCC            10 20 70
CCCABCCCCCCCCCACCBCCCCCBCCCCBBCCCCCACCBBCAACCACBBBCCCACCCCCBACCCCBCBCCBBCCCCCCBCACCCBBCCCCCCABCCCBCC            10 20 70
ACBCBBCBCCACCCCACBBCCCBCCBACBCCCCCCCABCCCCCBCCCCACCCBBBCCCCCCCCACCCCBBBCABBCCACCCCCCCCCCCACCCCBCCCCC            10 20 70
CCCACCBCBBCACCCCCCCBCBCACCCBCCCCCCBCCCCCCBCBACCCCCBACCCCCCBBBCCBCACABCCCCCCCBCCCACCBCBCCCCBCAACCCBCC            10 20 70
CCBBCCACCCCBCCCCCBCBCCCAACCCBCCAABCBCBCACCCCCCCCBCCCCCCCCCCCCBCACCCCCCBCCCCCBBBCCACCCCABBCACBBCCCBCC            10 20 70
CCCCABACCCBCCCCCBBCCCBCCCCCBBCBBACCCCCCCCCBCCCCBBCBCCABBACBCCCCCCCBBCCCCCBCACCCCCACCCCCBCACCCCACCACC            10 20 70
BCBCCBBCCACCCCCBCCBCCCBBCCCCCCBCCACBCACCCCBBCBCCCCBCCCCBCCCCACACBCCCCCCCBCCCBBAACCCCCCCACBACACCCCCCC            10 20 70
CBCBCCCBACCCCCBCCCACCCCCCCACBCCCACCCBCCCCACBCCCACCBCCAAACCCCCCCCCBCCCCCCACBBCCBCBCCBCCBCCBBCBCBCCBCC            10 20 70
BBCBBCCCCACCBCCCBCBCBCCACCBCCACCCABCCBCCCBCBCCCCABBCCBCBCCBCCBCCCCCCACCCACBCCCCCCCCCACCCCACCCCCCCACC            10 20 70
BBCCBCBCCCCCCCCCCCCBCACBACCCCACBAACCCCCBCCCCCBCCBCCBCBACCCCAACCCCCBBBCCCCABCCBCCCCBCABCCCCCBCCCCCCCC            10 20 70
BCCCCCCBCACBCCCBBACCCBBCCCCCCCCCCCBCBBCBACBCCCCCCCCCCCCCCBCCBACCBCCBCCCCBAACCCCCCCACCCCCBCBCACABACCC            10 20 70
CCCCCCCCABACCCCCCCCBCCBCBBCCCCCABBCCACAACABCACCBCBCBCBBCCCBBCCABCCCCCBCCCCCCCCCCCBBCCCCCCCCCCCBCACCC            10 20 70
CBCCBBCCCCCCCCABCCCBCCBCCCACCCBCCCCCCBCCCCCACCCBCCCCBCCCCCCCBCCCCCCCACBCAACAACBCCCACBCBBCBCCBCBCABCC            10 20 70
CCACCCACCBCBBBBACCCCCCCCBAAACCACCCCCCCBCBCBCCBCCBCCCCCCBCBCCCCCCCCACCCBCBCCCCCBBCACCCCCCCCCBACCBCBCC            10 20 70
BBCCBCCCBBCCCCCABCCCBBCCCCCCBACCCBCCCCBABCCCACCCCCCCCCBCBACCACCACCACBCCCCABCCCCCCABCCCCBCCCCCCBBCCCC            10 20 70
ABCCCCCBACCBCBCCCACCCCCCCACCCBACCCCACCCACCBBCCCCCCCCCCCBCCACACCCCCBBCBCCCCBCCBBBACCBCCCCCCCCBCCBBBCC            10 20 70
CCCCAACCABCBCBBBCCCCBCACCBBCBBCAACCCBCCCCBCCCBBACCBCCCCCCCCBCCCCCCCBBCCBCCCCCACCACCCCCCBACCCCCCCCCCC            10 20 70
CCCBCCACBCCACCCBCCCCCCBCCCCAACCBCCCBCCCCBCCCCCCCCBBCCCBCCBCACCBABCBABCCCBCACCCCBBCCBCCCCACCCCCBCCACC            10 20 70
CCBCBCACCCCCCBACCCCACACCCCBCCCACBCCCCCCCBBCCCBCCCBCCCCABBCCBBBACBCCCCCCCCCBCCCCCABCCBCCCCCBACBCCCACC            10 20 70
CCCCCCCCACBBCAACCCCCBCCCBACCBCCCACCCCBCCBCBACCBABCCBCCCCBBCBCCCCCCCABCCACCCCBCCCCBBCCCCCBCCCABCCCCCC            10 20 70
CACCCCCCCCCCCCBCBCCCBCCCCBBCCBCCCCBCCACBCACBBBCCCCBCABBCABCCCCCCCCCCCCCCCACBACACCCCCBACBCCCCBCBCCACC            10 20 70
CCCCCCBABCCCBACCCCCCCCBBCCCCACBBBCBCCAACCCBBCBCCCCCCCBCCBCCCCCCCCBCBCCAACCCCBBCCCCCCACACABCCCBCCCCCC            10 20 70
CCACCACCCCCBBCCCCCBCBBACCCCCBCBCCBBCCBCCCCCCCCBCCCCBBBCCCCABACAACCCCCCCCCCACBBCCCCCCAACCCBCCCCCBCBCC            10 20 70
CBACCACBCCCBCCCCBCCCCCCCCACBBCCABBCCCCCACCCACBCBBCCACBCCCCCCCBCCCBCBCCCCCBCCBBCCCCCCACACCCBCCBCCACCC            10 20 70
CCACACCACBCBCCCCBCCCCCBCCABCBCCACCCBCCBBBCBBCCCCBACACACBCBACBBCCCBCCCCCCCCCCCCCCBCCCCCCCCCCCCCCACBCC            10 20 70
CCCCCBCCBACCBCACCCBCCCCBCABCCABBCCCACCCCBCCCBBCCAABCCCBBCCCBBCCCCCCCCCCACBCCCCCCCCCCBCBACBCACCCCCCCC            10 20 70
CCCCBBBACCCBACBCCCACCCCACCACCCCCCCBBCCCCCCCCCCCBCACBCCBCACCCABCCCCCBCCCCCBBCCCBCCCCCCCBBCCBBCACBCACC            10 20 70
BCCCCBCCCCBCCBCAACCBBCCCCCCCBCBCCCCABCACCCCCBCCCCCCCCCBBACCCCCCCBBACACCACBCCCCBACCCBCCBCBCCABCCCCCCC            10 20 70
BAAAACCCCCCCCCCCCCBBABCBCCAABCCCCCCCBCBABCCBCCCCCBCCCBCCCBCCCBBBCCCCCCBCBBCCCACCCCCCCCCCBCCCCCCCACCC            10 20 70
CCBCBCCCCCCCCBCCACCCCACCACCACBCACCCABBBCBBBBCBBBCCCCCCCCCBCACCCCCCCCCCBBACCCCCBCBCCCACCCCCCCCCBACCCC            10 20 70

.. and the other situation coded with...

dim record$( 100)
numA =0
numB =0
numC =0

for i =1 to 100
    r =int( 101 *rnd( 1))    '   generate a % between 0 and 100
    select case
        case r <=10
            record$( i) ="C"
            numC =numC +1
        case r <=( 20 +10)
            record$( i) ="B"
            numB =numB +1
        case else
            record$( i) ="A"
            numA =numA +1
    end select
    print record$( i);
next i

print
print "Generated "; numA; " A's "; numB; " B's and "; numC; " C's."
.. generating..
BBAAABBACCCBBBAABABBAAAAAAAAABAAAABAAACABAABBAAAAAACBBCAAAABBAABABBCAABABAACCAAACBACAAABBCABABCAABBA
Generated 56 A's 31 B's and 13 C's.
..

.. in one run and

ABAAAABAACACAAAAAAAAABAABAACAAAAABBAAABCAAAABBAAACAAABAAAABAAAAABAAABABAAAACACCCAAABAABAAACABABABAAB
Generated 70 A's 20 B's and 10 C's.

.. in a second run.