salve ragazzi, ciao moderatori

ho un problema sul codice. Vorrei generare una stringa di caratteri casuali (pseudo) inframezzati con un numero casuale di punti
(es: fgf.fdd....ffgf.òròeòeàr...re.e.hlgàe...w.à.e.e... w...e......e.rer.ekjhk.hjkhwk.kkkhe.)


codice:
  Dim a1 As Integer
  Dim b1 As Integer
  Dim c1 As Integer
  Dim as1 As String
  Dim mp1 As Single
  Dim Rc1 As String
  Dim Rp1 As String
  as1 = ""
  a1 = 100
  b1 = 280
  Randomize Timer
  c1 = Int((b1 - a1 + 1) * Rnd + a1)
  Randomize Timer
  For k = 1 To c1
     mp1 = Int((10 - 1 + 1) * Rnd + 1)
     Rc1 = RandomCar(mp1, 33, 125)
     Rp1 = RandomPunt(1, 10)
     as1 = as1 & Rc1 & Rp1
  Next k

le funzioni RandomCar e RandomPunt sono:

codice:
'RESTITUISCE UN NUMERO n DI CARATTERI A CASO CON CODICE COMPRESO TRA 'a' e 'b'
Public Function RandomCar(n As Single, a As Single, b As Single) As String
  Dim r As Single
  Dim f As Single
  Dim RCar As String
  RCar = ""
  Randomize timer
  For f = 1 To n
    r = Int((b - a + 1) * Rnd + a)
    RCar = RCar & Chr(r)
  Next f
  RandomCar = RCar
End Function

'RESTITUISCE UNA STRINGA COMPOSTA DA UN NUMERO A CASO DI PUNTI n COMPRESO TRA a e b
Public Function RandomPunt(a As Integer, b As Integer) As String
  Dim n As Integer
  Dim p As Integer
  Dim np As String
  Randomize Timer
  n = Int((b - a + 1) * Rnd + a) 
  RandomPunt = String(n, ".")
il problema è che la stringa in uscita 'as1' mi ritorna una sequenza ripetuta di caratteri uguali.
Non riesco a capire dove sbaglio